blob: 2a7598a5815d0f403ee07d17151fa0ef481f8a47 [file] [log] [blame]
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package comparisons
type (
B int // basic type representative
A [10]func()
L []byte
S struct{ f []byte }
P *S
F func()
I interface{}
M map[string]int
C chan int
)
var (
b B
a A
l L
s S
p P
f F
i I
m M
c C
)
func _() {
_ = nil == nil // ERROR operator == not defined on untyped nil
_ = b == b
_ = a /* ERROR \[10\]func\(\) cannot be compared */ == a
_ = l /* ERROR slice can only be compared to nil */ == l
_ = s /* ERROR struct containing \[\]byte cannot be compared */ == s
_ = p == p
_ = f /* ERROR func can only be compared to nil */ == f
_ = i == i
_ = m /* ERROR map can only be compared to nil */ == m
_ = c == c
_ = b /* ERROR mismatched types */ == nil
_ = a /* ERROR mismatched types */ == nil
_ = l == nil
_ = s /* ERROR mismatched types */ == nil
_ = p == nil
_ = f == nil
_ = i == nil
_ = m == nil
_ = c == nil
_ = nil /* ERROR operator < not defined on untyped nil */ < nil
_ = b < b
_ = a /* ERROR operator < not defined on array */ < a
_ = l /* ERROR operator < not defined on slice */ < l
_ = s /* ERROR operator < not defined on struct */ < s
_ = p /* ERROR operator < not defined on pointer */ < p
_ = f /* ERROR operator < not defined on func */ < f
_ = i /* ERROR operator < not defined on interface */ < i
_ = m /* ERROR operator < not defined on map */ < m
_ = c /* ERROR operator < not defined on chan */ < c
}
func _[
B int,
A [10]func(),
L []byte,
S struct{ f []byte },
P *S,
F func(),
I interface{},
J comparable,
M map[string]int,
C chan int,
](
b B,
a A,
l L,
s S,
p P,
f F,
i I,
j J,
m M,
c C,
) {
_ = b == b
_ = a /* ERROR incomparable types in type set */ == a
_ = l /* ERROR incomparable types in type set */ == l
_ = s /* ERROR incomparable types in type set */ == s
_ = p == p
_ = f /* ERROR incomparable types in type set */ == f
_ = i /* ERROR incomparable types in type set */ == i
_ = j == j
_ = m /* ERROR incomparable types in type set */ == m
_ = c == c
_ = b /* ERROR mismatched types */ == nil
_ = a /* ERROR mismatched types */ == nil
_ = l == nil
_ = s /* ERROR mismatched types */ == nil
_ = p == nil
_ = f == nil
_ = i /* ERROR mismatched types */ == nil
_ = j /* ERROR mismatched types */ == nil
_ = m == nil
_ = c == nil
_ = b < b
_ = a /* ERROR type parameter A is not comparable with < */ < a
_ = l /* ERROR type parameter L is not comparable with < */ < l
_ = s /* ERROR type parameter S is not comparable with < */ < s
_ = p /* ERROR type parameter P is not comparable with < */ < p
_ = f /* ERROR type parameter F is not comparable with < */ < f
_ = i /* ERROR type parameter I is not comparable with < */ < i
_ = j /* ERROR type parameter J is not comparable with < */ < j
_ = m /* ERROR type parameter M is not comparable with < */ < m
_ = c /* ERROR type parameter C is not comparable with < */ < c
}