github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/test/fixedbugs/bug117.go (about)

     1  // errorcheck
     2  
     3  // Copyright 2009 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  package main
     8  
     9  type S struct {
    10  	a int
    11  }
    12  type PS *S
    13  
    14  func (p *S) get() int {
    15  	return p.a
    16  }
    17  
    18  func fn(p PS) int {
    19  	// p has type PS, and PS has no methods.
    20  	// (a compiler might see that p is a pointer
    21  	// and go looking in S without noticing PS.)
    22  	return p.get() // ERROR "undefined"
    23  }
    24  func main() {
    25  	s := S{1}
    26  	if s.get() != 1 {
    27  		panic("fail")
    28  	}
    29  }