]> Cypherpunks repositories - gostls13.git/commit
go/types, types2: don't crash in selectors referring to the type being declared
authorRobert Griesemer <gri@golang.org>
Sun, 6 Mar 2022 23:44:42 +0000 (15:44 -0800)
committerRobert Griesemer <gri@golang.org>
Mon, 7 Mar 2022 20:00:56 +0000 (20:00 +0000)
commit114d5deac2f513a7397ab4c2ee8d2d567a901266
tree572b997fdf3fbad59f126ee2e2db07c201aa0e99
parent7dc6c5ec34ca6780e8eac1760116ff69d0c27d7a
go/types, types2: don't crash in selectors referring to the type being declared

In Checker.typInternal, the SelectorExpr case was the only case that
didn't either set or pass along the incoming def *Named type.

Handle this by passing it along to Checker.selector and report a
cycle if one is detected.

Fixes #51509.

Change-Id: I6c2d46835f225aeb4cb25fe0ae55f6180cef038b
Reviewed-on: https://go-review.googlesource.com/c/go/+/390314
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/call.go
src/cmd/compile/internal/types2/expr.go
src/cmd/compile/internal/types2/testdata/fixedbugs/issue51509.go [new file with mode: 0644]
src/cmd/compile/internal/types2/typexpr.go
src/go/types/call.go
src/go/types/expr.go
src/go/types/testdata/fixedbugs/issue51509.go [new file with mode: 0644]
src/go/types/typexpr.go