]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] cmd/compile/internal/types: review of type.go
authorRobert Griesemer <gri@golang.org>
Thu, 18 Feb 2021 05:18:07 +0000 (21:18 -0800)
committerRobert Griesemer <gri@golang.org>
Thu, 18 Feb 2021 20:47:22 +0000 (20:47 +0000)
The changes between (equivalent, and reviewed) go/types/type.go
and type.go can be seen by comparing patchset 1 and 3. The actual
change is just removing the "// UNREVIEWED" marker and some
comment adjustments.

Change-Id: Ied0e2f942bc96a9fcae0466761cfaa60a87668db
Reviewed-on: https://go-review.googlesource.com/c/go/+/293471
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/type.go

index c1c3a4629e0f8ecc5bed552503c099ce9d51328f..a9ac90246d4d5d7c96f5e31db7b1d8882a5f3b48 100644 (file)
@@ -1,4 +1,3 @@
-// UNREVIEWED
 // Copyright 2011 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
@@ -207,7 +206,7 @@ type Signature struct {
        // and store it in the Func Object) because when type-checking a function
        // literal we call the general type checker which returns a general Type.
        // We then unpack the *Signature and use the scope for the literal body.
-       rparams  []*TypeName // reveiver type parameters from left to right; or nil
+       rparams  []*TypeName // receiver type parameters from left to right; or nil
        tparams  []*TypeName // type parameters from left to right; or nil
        scope    *Scope      // function scope, present for package-local signatures
        recv     *Var        // nil if not a method
@@ -725,9 +724,8 @@ type TypeParam struct {
        bound Type      // *Named or *Interface; underlying type is always *Interface
 }
 
-func (t *TypeParam) Obj() *TypeName {
-       return t.obj
-}
+// Obj returns the type name for the type parameter t.
+func (t *TypeParam) Obj() *TypeName { return t.obj }
 
 // NewTypeParam returns a new TypeParam.
 func (check *Checker) NewTypeParam(obj *TypeName, index int, bound Type) *TypeParam {
@@ -747,6 +745,7 @@ func (t *TypeParam) Bound() *Interface {
        if n, _ := t.bound.(*Named); n != nil {
                pos = n.obj.pos
        }
+       // TODO(gri) switch this to an unexported method on Checker.
        t.check.completeInterface(pos, iface)
        return iface
 }
@@ -762,7 +761,7 @@ func optype(typ Type) Type {
        if t := asTypeParam(typ); t != nil {
                // If the optype is typ, return the top type as we have
                // no information. It also prevents infinite recursion
-               // via the TypeParam converter methods. This can happen
+               // via the asTypeParam converter function. This can happen
                // for a type parameter list of the form:
                // (type T interface { type T }).
                // See also issue #39680.