// 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 type T1 interface{ M() } func F1() T1 var _ = F1().(*X1 /* ERROR "undefined: X1" */) func _() { switch F1().(type) { case *X1 /* ERROR "undefined: X1" */ : } } type T2 interface{ M() } func F2() T2 var _ = F2 /* ERROR "impossible type assertion: F2().(*X2)\n\t*X2 does not implement T2 (missing method M)" */ ().(*X2) type X2 struct{} func _() { switch F2().(type) { case * /* ERROR "impossible type switch case: *X2\n\tF2() (value of type T2) cannot have dynamic type *X2 (missing method M)" */ X2: } }