// Copyright 2020 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 _[T any](x interface{}){ switch x.(type) { case T: // ok to use a type parameter case int: } switch x.(type) { case T: case T /* ERROR duplicate case */ : } } type constraint interface { ~int } func _[T constraint](x interface{}){ switch x.(type) { case T: // ok to use a type parameter even if type list contains int case int: } } func _(x constraint /* ERROR contains type constraints */ ) { switch x.(type) { // no need to report another error } }