From 82a65299050cb1146583c72350f841684256bb3c Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Sun, 6 Mar 2022 19:52:08 -0800 Subject: [PATCH] cmd/compile: remove unneeded type alias code in unified IR 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 Run-TryBot: Matthew Dempsky TryBot-Result: Gopher Robot Reviewed-by: Cuong Manh Le --- src/cmd/compile/internal/noder/writer.go | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/cmd/compile/internal/noder/writer.go b/src/cmd/compile/internal/noder/writer.go index 59e9409b97..59bce0730d 100644 --- a/src/cmd/compile/internal/noder/writer.go +++ b/src/cmd/compile/internal/noder/writer.go @@ -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) -- 2.50.0