blob: dc1c5fa0299de500a0aaf3479d25c1bcca22a86d [file] [log] [blame]
// -lang=go1.19
// 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
func f1[_ comparable]() {}
func f2[_ interface{ comparable }]() {}
type T interface{ m() }
func _[P comparable, Q ~int, R any]() {
_ = f1[int]
_ = f1[T /* ERROR T to satisfy comparable requires go1\.20 or later */]
_ = f1[any /* ERROR any to satisfy comparable requires go1\.20 or later */]
_ = f1[P]
_ = f1[Q]
_ = f1[R /* ERROR R does not satisfy comparable */]
_ = f2[int]
_ = f2[T /* ERROR T to satisfy comparable requires go1\.20 or later */]
_ = f2[any /* ERROR any to satisfy comparable requires go1\.20 or later */]
_ = f2[P]
_ = f2[Q]
_ = f2[R /* ERROR R does not satisfy comparable */]
}