// 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 == nil /* ERROR "mismatched types" */ _ = a == nil /* ERROR "mismatched types" */ _ = l == nil _ = s == nil /* ERROR "mismatched types" */ _ = 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 == nil /* ERROR "mismatched types" */ _ = a == nil /* ERROR "mismatched types" */ _ = l == nil _ = s == nil /* ERROR "mismatched types" */ _ = p == nil _ = f == nil _ = i == nil /* ERROR "mismatched types" */ _ = j == nil /* ERROR "mismatched types" */ _ = 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 }