]> Cypherpunks.ru repositories - gostls13.git/commitdiff
[dev.typeparams] cmd/compile/internal/types2: use the TParams API consistently
authorRobert Griesemer <gri@golang.org>
Wed, 28 Jul 2021 22:38:28 +0000 (15:38 -0700)
committerRobert Griesemer <gri@golang.org>
Thu, 29 Jul 2021 21:05:47 +0000 (21:05 +0000)
This is a clean port of CL 336251.

Change-Id: I08415c3e9b6cef33594e7d56c4115ddde8030381
Reviewed-on: https://go-review.googlesource.com/c/go/+/338193
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/call.go
src/cmd/compile/internal/types2/decl.go
src/cmd/compile/internal/types2/subst.go
src/cmd/compile/internal/types2/typestring.go

index dee49b44a44dce4b2a8f882a43a6ed3878b1cbe5..e1acf50213a8efad6e4398aef5f3f9c8b479e5f3 100644 (file)
@@ -57,7 +57,7 @@ func (check *Checker) funcInst(x *operand, inst *syntax.IndexExpr) {
 
        // instantiate function signature
        res := check.Instantiate(x.Pos(), sig, targs, poslist, true).(*Signature)
-       assert(res.tparams == nil) // signature is not generic anymore
+       assert(res.TParams().Len() == 0) // signature is not generic anymore
        if inferred {
                check.recordInferred(inst, targs, res)
        }
@@ -327,7 +327,7 @@ func (check *Checker) arguments(call *syntax.CallExpr, sig *Signature, targs []T
 
                // compute result signature
                rsig = check.Instantiate(call.Pos(), sig, targs, nil, true).(*Signature)
-               assert(rsig.tparams == nil) // signature is not generic anymore
+               assert(rsig.TParams().Len() == 0) // signature is not generic anymore
                check.recordInferred(call, targs, rsig)
 
                // Optimization: Only if the parameter list was adjusted do we
index c867d87603ced30f307014591e2645012b4a8eb0..cf4d4c95a7ec33c52202152b7da068f3555390fe 100644 (file)
@@ -575,7 +575,7 @@ func (check *Checker) typeDecl(obj *TypeName, tdecl *syntax.TypeDecl, def *Named
        named.underlying = under(named)
 
        // If the RHS is a type parameter, it must be from this type declaration.
-       if tpar, _ := named.underlying.(*TypeParam); tpar != nil && tparamIndex(named.tparams.list(), tpar) < 0 {
+       if tpar, _ := named.underlying.(*TypeParam); tpar != nil && tparamIndex(named.TParams().list(), tpar) < 0 {
                check.errorf(tdecl.Type, "cannot use function type parameter %s as RHS in type declaration", tpar)
                named.underlying = Typ[Invalid]
        }
index 54cd005640d853718204e8c69d4e9753b114b93c..e497e174636b189cb97adcfb30b2ac22beb19e6d 100644 (file)
@@ -187,7 +187,7 @@ func (subst *subster) typ(typ Type) Type {
                        }
                }
 
-               if t.TParams() == nil {
+               if t.TParams().Len() == 0 {
                        dump(">>> %s is not parameterized", t)
                        return t // type is not parameterized
                }
index 7a8b5a6eeeb2c174b4e93f917075d286eb56b47b..b7e32c9860b9bd2c84493753efb6f5ede9122695 100644 (file)
@@ -278,7 +278,7 @@ func writeType(buf *bytes.Buffer, typ Type, qf Qualifier, visited []Type) {
                        buf.WriteByte('[')
                        writeTypeList(buf, t.targs, qf, visited)
                        buf.WriteByte(']')
-               } else if t.TParams() != nil {
+               } else if t.TParams().Len() != 0 {
                        // parameterized type
                        writeTParamList(buf, t.TParams().list(), qf, visited)
                }
@@ -425,7 +425,7 @@ func WriteSignature(buf *bytes.Buffer, sig *Signature, qf Qualifier) {
 }
 
 func writeSignature(buf *bytes.Buffer, sig *Signature, qf Qualifier, visited []Type) {
-       if sig.tparams != nil {
+       if sig.TParams().Len() != 0 {
                writeTParamList(buf, sig.TParams().list(), qf, visited)
        }