]> Cypherpunks repositories - gostls13.git/commit
[dev.typeparams] cmd/compile: remove some shape checks in type substituter, other...
authorDan Scales <danscales@google.com>
Thu, 12 Aug 2021 16:58:54 +0000 (09:58 -0700)
committerDan Scales <danscales@google.com>
Thu, 12 Aug 2021 19:32:30 +0000 (19:32 +0000)
commit7e9f911ec4fd08ce9b4296f0aea4864b53064573
tree5d107ddd710a4e18a66bd56ab2b5f70f55e35326
parent677dfe5ad677d7072ffd69963c407a8945e94ec5
[dev.typeparams] cmd/compile:  remove some shape checks in type substituter, other cleanups

The type substituter (typecheck.Typ()) was temporarily substituting from
shapes back to concrete types, but doesn't need to anymore. So, remove
two shape checks, so the type substituter is now only for substituting
type params again.

Several other cleanups:

 - renamed makeGenericName() to makeInstName1(), since that function is
   a helper to MakeInstName() and MakeDictName() that definitely makes
   instantiated names, not generic names.

 - removed the logic in makeInstName1() that adds the ".inst." prefix
   for concrete type args. We are only specifying concrete type args (as
   opposed to shape args) when we are calling from MakeDictName, and
   then we immediately strip of the .inst prefix anyway.

 - Added a comment on types.Identical that a shape type is considered
   identicall to another type if their underlying types are the same, or
   they are both pointers.

Change-Id: I3e0206dbd403897797ae7bec3c527ae16b0b930a
Reviewed-on: https://go-review.googlesource.com/c/go/+/341729
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
src/cmd/compile/internal/typecheck/subr.go
src/cmd/compile/internal/types/identity.go