From: Matthew Dempsky Date: Mon, 7 Mar 2022 03:52:08 +0000 (-0800) Subject: cmd/compile: remove unneeded type alias code in unified IR X-Git-Tag: go1.19beta1~1153 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=82a65299050cb1146583c72350f841684256bb3c;p=gostls13.git 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 --- 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)