]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: remove unneeded type alias code in unified IR
authorMatthew Dempsky <mdempsky@google.com>
Mon, 7 Mar 2022 03:52:08 +0000 (19:52 -0800)
committerMatthew Dempsky <mdempsky@google.com>
Mon, 7 Mar 2022 06:23:26 +0000 (06:23 +0000)
Before #46477, the Go generics proposal allowed `type T = U` where `U`
was an uninstantiated generic type. However, we decided not to allow
that, and go/types and types2 have already been updated to disallow
it. This CL just removes the analogous code from unified IR.

Change-Id: I0fe6d1754c96790b498c1d5185b948333646d7de
Reviewed-on: https://go-review.googlesource.com/c/go/+/390315
Trust: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
src/cmd/compile/internal/noder/writer.go

index 59e9409b97d505dfdf30047a8473bbc73caa7c99..59bce0730d4a7dbcdfab112dd708c73ad8e88218 100644 (file)
@@ -284,10 +284,7 @@ func (pw *pkgWriter) typIdx(typ types2.Type, dict *writerDict) typeInfo {
                }
 
        case *types2.Named:
-               // Type aliases can refer to uninstantiated generic types, so we
-               // might see len(TParams) != 0 && len(TArgs) == 0 here.
-               // TODO(mdempsky): Revisit after #46477 is resolved.
-               assert(typ.TypeParams().Len() == typ.TypeArgs().Len() || typ.TypeArgs().Len() == 0)
+               assert(typ.TypeParams().Len() == typ.TypeArgs().Len())
 
                // TODO(mdempsky): Why do we need to loop here?
                orig := typ
@@ -1630,15 +1627,6 @@ func (w *writer) pkgDecl(decl syntax.Decl) {
                        break
                }
 
-               // Skip aliases to uninstantiated generic types.
-               // TODO(mdempsky): Revisit after #46477 is resolved.
-               if name.IsAlias() {
-                       named, ok := name.Type().(*types2.Named)
-                       if ok && named.TypeParams().Len() != 0 && named.TypeArgs().Len() == 0 {
-                               break
-                       }
-               }
-
                w.Code(declOther)
                w.pkgObjs(decl.Name)