// 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 does not implement comparable */ ] _ = f1[any /* ERROR any does not implement comparable */ ] _ = f1[P] _ = f1[Q] _ = f1[R /* ERROR R does not implement comparable */] _ = f2[int] _ = f2[T /* ERROR T does not implement comparable */ ] _ = f2[any /* ERROR any does not implement comparable */ ] _ = f2[P] _ = f2[Q] _ = f2[R /* ERROR R does not implement comparable */] }