modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue19040.go (about)

     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  
    10  package main
    11  
    12  import "fmt"
    13  
    14  type T int
    15  
    16  type I interface {
    17  	F()
    18  }
    19  
    20  func (t T) F() {}
    21  
    22  var (
    23  	t *T
    24  	i I = t
    25  )
    26  
    27  func 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  }