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