1// run
2
3// Copyright 2017 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// Check the text of the panic that comes from
8// a nil pointer passed to automatically generated method wrapper.
9
10package main
11
12import "fmt"
13
14type T int
15
16type I interface {
17	F()
18}
19
20func (t T) F() {}
21
22var (
23	t *T
24	i I = t
25)
26
27func main() {
28	defer func() {
29		got := recover().(error).Error()
30		want := "value method main.T.F called using nil *T pointer"
31		if got != want {
32			fmt.Printf("panicwrap error text:\n\t%q\nwant:\n\t%q\n", got, want)
33		}
34	}()
35	i.F()
36}
37