// Copyright 2021 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

func f[_ comparable]() {}
func g[_ interface{interface{comparable; ~int|~string}}]() {}

func _[P comparable,
        Q interface{ comparable; ~int|~string },
        R any,                               // not comparable
        S interface{ comparable; ~func() },  // not comparable
]() {
        _ = f[int]
        _ = f[P]
        _ = f[Q]
        _ = f[func /* ERROR "does not satisfy comparable" */ ()]
        _ = f[R /* ERROR "R does not satisfy comparable" */ ]

        _ = g[int]
        _ = g[P /* ERROR "P does not satisfy interface{interface{comparable; ~int | ~string}" */ ]
        _ = g[Q]
        _ = g[func /* ERROR "func() does not satisfy interface{interface{comparable; ~int | ~string}}" */ ()]
        _ = g[R /* ERROR "R does not satisfy interface{interface{comparable; ~int | ~string}" */ ]
}
