]> Cypherpunks.ru repositories - gostls13.git/commitdiff
go/types, cmd/compile: remove unused Interface.obj field
authorMatthew Dempsky <mdempsky@google.com>
Wed, 2 Feb 2022 01:45:28 +0000 (17:45 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 16 Mar 2022 00:34:15 +0000 (00:34 +0000)
Change-Id: I6d0f629f9c7379074a03c8f13b99924d872872a3
Reviewed-on: https://go-review.googlesource.com/c/go/+/385996
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/interface.go
src/cmd/compile/internal/types2/sizeof_test.go
src/cmd/compile/internal/types2/typexpr.go
src/cmd/compile/internal/types2/universe.go
src/go/types/interface.go
src/go/types/sizeof_test.go
src/go/types/typexpr.go
src/go/types/universe.go

index 75597abaf9cfe4ff130a28a66ae0bb673d8f924e..b8bf88dc624d18daf4addf6bad2fe9c0ef4db39e 100644 (file)
@@ -12,7 +12,6 @@ import "cmd/compile/internal/syntax"
 // An Interface represents an interface type.
 type Interface struct {
        check     *Checker      // for error reporting; nil once type set is computed
-       obj       *TypeName     // corresponding declared object; or nil (for better error messages)
        methods   []*Func       // ordered list of explicitly declared methods
        embeddeds []Type        // ordered list of explicitly embedded elements
        embedPos  *[]syntax.Pos // positions of embedded elements; or nil (for error messages) - use pointer to save space
index 14020050a937e05aa691f911bee9dc21a10f2291..bd31a041b76d6401bb06be7db5a92187b840acd3 100644 (file)
@@ -28,7 +28,7 @@ func TestSizeof(t *testing.T) {
                {Tuple{}, 12, 24},
                {Signature{}, 28, 56},
                {Union{}, 12, 24},
-               {Interface{}, 44, 88},
+               {Interface{}, 40, 80},
                {Map{}, 16, 32},
                {Chan{}, 12, 24},
                {Named{}, 56, 104},
index 7e30562e9721181791d206b0fed398f01670da43..40333fd77f904e913da0890ad278565265dcee3f 100644 (file)
@@ -348,9 +348,6 @@ func (check *Checker) typInternal(e0 syntax.Expr, def *Named) (T Type) {
        case *syntax.InterfaceType:
                typ := check.newInterface()
                def.setUnderlying(typ)
-               if def != nil {
-                       typ.obj = def.obj
-               }
                check.interfaceType(typ, e, def)
                return typ
 
index 11c81863a98402e116e9d8a2a2e0689857627b2c..1deff3961f501a7d8064d76db3e3cd878a0ee282 100644 (file)
@@ -97,7 +97,7 @@ func defPredeclaredTypes() {
                err := NewFunc(nopos, nil, "Error", sig)
 
                // interface{ Error() string }
-               ityp := &Interface{obj: obj, methods: []*Func{err}, complete: true}
+               ityp := &Interface{methods: []*Func{err}, complete: true}
                computeInterfaceTypeSet(nil, nopos, ityp) // prevent races due to lazy computation of tset
 
                typ.SetUnderlying(ityp)
@@ -111,7 +111,7 @@ func defPredeclaredTypes() {
                typ := NewNamed(obj, nil, nil)
 
                // interface{} // marked as comparable
-               ityp := &Interface{obj: obj, complete: true, tset: &_TypeSet{nil, allTermlist, true}}
+               ityp := &Interface{complete: true, tset: &_TypeSet{nil, allTermlist, true}}
 
                typ.SetUnderlying(ityp)
                def(obj)
index 3db3580a91b5819844826aa392f2b0e2f3cbc9ca..361ef7eddf6919c327253ce2091e1c62f11a989d 100644 (file)
@@ -15,7 +15,6 @@ import (
 // An Interface represents an interface type.
 type Interface struct {
        check     *Checker     // for error reporting; nil once type set is computed
-       obj       *TypeName    // type name object defining this interface; or nil (for better error messages)
        methods   []*Func      // ordered list of explicitly declared methods
        embeddeds []Type       // ordered list of explicitly embedded elements
        embedPos  *[]token.Pos // positions of embedded elements; or nil (for error messages) - use pointer to save space
index bfd14a81098da9d72c1c978e92daa13127965079..ba8edf8ad588d45d605e34e558b0f559de16c8b4 100644 (file)
@@ -27,7 +27,7 @@ func TestSizeof(t *testing.T) {
                {Tuple{}, 12, 24},
                {Signature{}, 28, 56},
                {Union{}, 12, 24},
-               {Interface{}, 44, 88},
+               {Interface{}, 40, 80},
                {Map{}, 16, 32},
                {Chan{}, 12, 24},
                {Named{}, 56, 104},
index 5bb2d8f8112086fe08c933593ff57a232da51581..d72b48185ad3ca774c038f8113eb44b6f18f6a0e 100644 (file)
@@ -329,9 +329,6 @@ func (check *Checker) typInternal(e0 ast.Expr, def *Named) (T Type) {
        case *ast.InterfaceType:
                typ := check.newInterface()
                def.setUnderlying(typ)
-               if def != nil {
-                       typ.obj = def.obj
-               }
                check.interfaceType(typ, e, def)
                return typ
 
index 303ada4e57bd7df7112f1f4854a308ab56466adb..f58128f480e2194014856b8b528f55f67948c786 100644 (file)
@@ -98,7 +98,7 @@ func defPredeclaredTypes() {
                err := NewFunc(token.NoPos, nil, "Error", sig)
 
                // interface{ Error() string }
-               ityp := &Interface{obj: obj, methods: []*Func{err}, complete: true}
+               ityp := &Interface{methods: []*Func{err}, complete: true}
                computeInterfaceTypeSet(nil, token.NoPos, ityp) // prevent races due to lazy computation of tset
 
                typ.SetUnderlying(ityp)
@@ -112,7 +112,7 @@ func defPredeclaredTypes() {
                typ := NewNamed(obj, nil, nil)
 
                // interface{} // marked as comparable
-               ityp := &Interface{obj: obj, complete: true, tset: &_TypeSet{nil, allTermlist, true}}
+               ityp := &Interface{complete: true, tset: &_TypeSet{nil, allTermlist, true}}
 
                typ.SetUnderlying(ityp)
                def(obj)