]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.typeparams] cmd/compile/internal/types2: implement package height
authorMatthew Dempsky <mdempsky@google.com>
Wed, 19 May 2021 02:03:00 +0000 (19:03 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Wed, 19 May 2021 21:53:04 +0000 (21:53 +0000)
commiteff66248ea242c2611a9a0e2be47a762073e81b2
tree3259009953ffdb1c715797362f60c6c42a59266c
parent3f6f12972b08d8559264971e8706efb3fbfd106a
[dev.typeparams] cmd/compile/internal/types2: implement package height

This CL extends types2 with package height information, styled after
the way it works already in cmd/compile:

- A new NewPackageHeight entry point for constructing packages with
  explicit height information, and a corresponding Height accessor
  method.

- The types2 importer is updated to provide package height for
  imported packages.

- The types2 type checker sets height based on imported packages.

- Adds an assertion to irgen to verify that types1 and types2
  calculated the same height for the source package.

- Func.less's ordering incorporates package height to match
  types.Sym.less and is generalized to object.less.

- sortTypes (used for sorting embedded types) now sorts defined types
  using object.less as well.

Change-Id: Id4dbbb627aef405cc7438d611cbdd5a5bd97fc96
Reviewed-on: https://go-review.googlesource.com/c/go/+/321231
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Trust: Matthew Dempsky <mdempsky@google.com>
Trust: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/cmd/compile/internal/importer/iimport.go
src/cmd/compile/internal/noder/irgen.go
src/cmd/compile/internal/types2/object.go
src/cmd/compile/internal/types2/package.go
src/cmd/compile/internal/types2/resolver.go
src/cmd/compile/internal/types2/typexpr.go