diff options
Diffstat (limited to 'src/cmd/compile/internal/types/size.go')
-rw-r--r-- | src/cmd/compile/internal/types/size.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/cmd/compile/internal/types/size.go b/src/cmd/compile/internal/types/size.go index a75429f0ab..f0e695ab96 100644 --- a/src/cmd/compile/internal/types/size.go +++ b/src/cmd/compile/internal/types/size.go @@ -119,7 +119,7 @@ func expandiface(t *Type) { // Embedded interface: duplicate all methods // (including broken ones, if any) and add to t's // method set. - for _, t1 := range m.Type.Fields().Slice() { + for _, t1 := range m.Type.AllMethods().Slice() { // Use m.Pos rather than t1.Pos to preserve embedding position. f := NewField(m.Pos, t1.Sym, t1.Type) addMethod(f, false) @@ -135,9 +135,7 @@ func expandiface(t *Type) { m.Offset = int64(i) * int64(PtrSize) } - // Access fields directly to avoid recursively calling CalcSize - // within Type.Fields(). - t.Extra.(*Interface).Fields.Set(methods) + t.SetAllMethods(methods) } func calcStructOffset(errtype *Type, t *Type, o int64, flag int) int64 { |