// 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:
	}
}
