| // 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 p |
| |
| type C1 interface { |
| comparable |
| } |
| |
| type C2 interface { |
| comparable |
| [2]any | int |
| } |
| |
| func G1[T C1](t T) { _ = t == t } |
| func G2[T C2](t T) { _ = t == t } |
| |
| func F1[V [2]any](v V) { |
| _ = G1[V /* ERROR "V does not satisfy comparable" */] |
| _ = G1[[2]any] |
| _ = G1[int] |
| } |
| |
| func F2[V [2]any](v V) { |
| _ = G2[V /* ERROR "V does not satisfy C2" */] |
| _ = G2[[ /* ERROR "[2]any does not satisfy C2 (C2 mentions [2]any, but [2]any is not in the type set of C2)" */ 2]any] |
| _ = G2[int] |
| } |