Text file src/go/types/testdata/fixedbugs/issue47411.go2

     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  package p
     6  
     7  func f[_ comparable]() {}
     8  func g[_ interface{interface{comparable; ~int|~string}}]() {}
     9  
    10  func _[P comparable,
    11          Q interface{ comparable; ~int|~string },
    12          R any,                               // not comparable
    13          S interface{ comparable; ~func() },  // not comparable
    14  ]() {
    15          _ = f[int]
    16          _ = f[P]
    17          _ = f[Q]
    18          _ = f[func /* ERROR does not implement comparable */ ()]
    19          _ = f[R /* ERROR R does not implement comparable */ ]
    20  
    21          _ = g[int]
    22          _ = g[P /* ERROR P does not implement interface{interface{comparable; ~int\|~string} */ ]
    23          _ = g[Q]
    24          _ = g[func /* ERROR func\(\) does not implement interface{interface{comparable; ~int\|~string}} */ ()]
    25          _ = g[R /* ERROR R does not implement interface{interface{comparable; ~int\|~string} */ ]
    26  }
    27  

View as plain text