1 // Copyright 2021 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 // Verify that we get an empty type set (not just an error)
6 // when using an invalid ~A.
7
8 package p
9
10 type A int
11 type C interface {
12 ~ /* ERROR invalid use of ~ */ A
13 }
14
15 func f[_ C]() {}
16 func g[_ interface{ C }]() {}
17 func h[_ C | int]() {}
18
19 func _() {
20 _ = f[int /* ERROR cannot implement C \(empty type set\) */]
21 _ = g[int /* ERROR cannot implement interface{C} \(empty type set\) */]
22 _ = h[int]
23 }
24
View as plain text