]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: fix any in -G=0 mode
authorRuss Cox <rsc@golang.org>
Tue, 14 Dec 2021 15:49:07 +0000 (10:49 -0500)
committerRuss Cox <rsc@golang.org>
Tue, 14 Dec 2021 16:19:51 +0000 (16:19 +0000)
Fixes go test -gcflags=all=-G=0 -short std,
except for the packages with generics in their tests
(constraints, encoding/xml), and except for the
go/internal/gcimporter and go/types tests,
because the compiler does not preserve any
in its -G=0 export information.
(That's probably acceptable for now.)

Fixes cd test/; GO_BUILDER_NAME=longtest go run run.go
completely, which should fix the longtest builder.

Fixes #50159.

Change-Id: I9390972239c18831833edd6530191da2842b876b
Reviewed-on: https://go-review.googlesource.com/c/go/+/371715
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Mui <cherryyz@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/cmd/compile/internal/types/universe.go

index f845614e133f4b68e7f0cf672c39589e9cec462f..54b04bda2239c142eadbed33a112f8c7f5b4215f 100644 (file)
@@ -57,7 +57,7 @@ func InitTypes(defTypeName func(sym *Sym, typ *Type) Object) {
                SimType[et] = et
        }
 
-       Types[TANY] = newType(TANY)
+       Types[TANY] = newType(TANY) // note: an old placeholder type, NOT the new builtin 'any' alias for interface{}
        Types[TINTER] = NewInterface(LocalPkg, nil, false)
        CheckSize(Types[TINTER])
 
@@ -91,6 +91,7 @@ func InitTypes(defTypeName func(sym *Sym, typ *Type) Object) {
        // int32  Hence, (bytetype|runtype).Sym.isAlias() is false.
        // TODO(gri) Should we get rid of this special case (at the cost
        // of less informative error messages involving bytes and runes)?
+       // NOTE(rsc): No, the error message quality is important.
        // (Alternatively, we could introduce an OTALIAS node representing
        // type aliases, albeit at the cost of having to deal with it everywhere).
        ByteType = defBasic(TUINT8, BuiltinPkg, "byte")
@@ -111,12 +112,11 @@ func InitTypes(defTypeName func(sym *Sym, typ *Type) Object) {
        // any type (interface)
        DeferCheckSize()
        AnyType = defBasic(TFORW, BuiltinPkg, "any")
-       AnyType.SetUnderlying(NewInterface(NoPkg, []*Field{}, false))
+       AnyType.SetUnderlying(NewInterface(BuiltinPkg, []*Field{}, false))
        ResumeCheckSize()
 
        if base.Flag.G == 0 {
                ComparableType.Sym().Def = nil
-               AnyType.Sym().Def = nil
        }
 
        Types[TUNSAFEPTR] = defBasic(TUNSAFEPTR, UnsafePkg, "Pointer")