// errorcheck // Copyright 2009 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 main type S struct { a int } type PS *S func (p *S) get() int { return p.a } func fn(p PS) int { // p has type PS, and PS has no methods. // (a compiler might see that p is a pointer // and go looking in S without noticing PS.) return p.get() // ERROR "undefined" } func main() { s := S{1} if s.get() != 1 { panic("fail") } }