| // compile |
| |
| // Copyright 2015 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. |
| |
| // Issue 11790: Incorrect error following named pointer dereference on field |
| |
| package main |
| |
| import "fmt" |
| |
| type T0 struct { |
| x int |
| } |
| |
| func (*T0) M0() { |
| fmt.Println("M0") |
| } |
| |
| type T2 struct { |
| *T0 |
| } |
| |
| type Q *T2 |
| |
| func main() { |
| // If run, expected output is |
| // 42 |
| // M0 |
| t0 := T0{42} |
| t2 := T2{&t0} |
| var q Q = &t2 |
| fmt.Println(q.x) // Comment out either this line or the next line and the program works |
| (*q).T0.M0() |
| } |