]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] go/types: switch the TArgs API to NumTArgs/TArg
authorRob Findley <rfindley@google.com>
Wed, 4 Aug 2021 14:43:08 +0000 (10:43 -0400)
committerRobert Findley <rfindley@google.com>
Wed, 4 Aug 2021 23:23:45 +0000 (23:23 +0000)
As with other go/types APIs, we should not expose the underlying
Named.targs slice.

Change-Id: Iba869298fbd3856022ffe8ec2c3273341598c324
Reviewed-on: https://go-review.googlesource.com/c/go/+/340009
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/go/types/named.go

index fc53783ab8556d25d5c8f88e64dfaeebd1b089b9..f26b50aa81177fb449c90b886f4f66c10a2fc486 100644 (file)
@@ -125,8 +125,12 @@ func (t *Named) TParams() *TypeParams { return t.load().tparams }
 // SetTParams sets the type parameters of the named type t.
 func (t *Named) SetTParams(tparams []*TypeName) { t.load().tparams = bindTParams(tparams) }
 
-// TArgs returns the type arguments after instantiation of the named type t, or nil if not instantiated.
-func (t *Named) TArgs() []Type { return t.targs }
+// NumTArgs returns the number of type arguments used to instantiate the named
+// type t, or 0 if t is not an instantiated type.
+func (t *Named) NumTArgs() int { return len(t.targs) }
+
+// TArgs returns the i'th type argument of the named type t for 0 <= i < t.NumTArgs().
+func (t *Named) TArg(i int) Type { return t.targs[i] }
 
 // SetTArgs sets the type arguments of the named type t.
 func (t *Named) SetTArgs(args []Type) { t.targs = args }