diff --git a/src/cmd/compile/internal/reflectdata/reflect.go b/src/cmd/compile/internal/reflectdata/reflect.go index a9f87baee2b5e..d6e6b115a462a 100644 --- a/src/cmd/compile/internal/reflectdata/reflect.go +++ b/src/cmd/compile/internal/reflectdata/reflect.go @@ -1199,10 +1199,10 @@ func writeType(t *types.Type) *obj.LSym { // Note: DUPOK is required to ensure that we don't end up with more // than one type descriptor for a given type, if the type descriptor - // can be defined in multiple packages, that is, unnamed types and - // instantiated types. + // can be defined in multiple packages, that is, unnamed types, + // instantiated types and shape types. dupok := 0 - if tbase.Sym() == nil || tbase.IsFullyInstantiated() { + if tbase.Sym() == nil || tbase.IsFullyInstantiated() || tbase.HasShape() { dupok = obj.DUPOK }