go/types: use an identifier map rather than isubst for recv type params
Receiver type parameters are the only type expressions allowed to be blank. Previously this was handled by substitution of synthetic non-blank names in the receiver type expression, but that introduced problems related to AST mangling: the scope had extra elements, Object.Name() was inaccurate, and synthetic nodes were recorded in types.Info. Fix this instead by recording a map of *ast.Ident->*TypeParam on the Checker, which is read in Checker.ident to resolve blank identifiers denoting receiver type parameters. Change-Id: I6a7a86b823409f54778c0f141e8bd269a2cc85d9 Reviewed-on: https://go-review.googlesource.com/c/go/+/354643 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by:Robert Griesemer <gri@golang.org>
Loading
Please sign in to comment