// run // Copyright 2014 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. // Gccgo chose the wrong embedded method when the same type appeared // at different levels and the correct choice was not the first // appearance of the type in a depth-first search. package main type embedded string func (s embedded) val() string { return string(s) } type A struct { embedded } type B struct { A embedded } func main() { b := &B{ A: A{ embedded: "a", }, embedded: "b", } s := b.val() if s != "b" { panic(s) } }