go/parser, go/types: don't parse type parameters on methods
The go/parser package is updated to report an error on method type parameters, and to not store them in the AST. Tests are updated accordingly, and error messages are normalized accross go/parser and the compiler syntax package. Before this CL, go/parser would parse type parameters on method declarations and interface methods, leaving it to go/types to complain. There are several problems with this: - Interface Methods and Method declarations do not have type parameters in the spec. We try to align the parser with the productions in the spec. - Parsing method type parameters means that downstream libraries (go/doc, go/format, etc.) theoretically need to handle them, even though they are not part of the language. - Relatedly, go/types has inconsistent handling of method type parameters due to support being removed, leading to the crasher in #50427. It is more consistent and safer to disallow type parameters on methods in the parser. Fixes #50427 Change-Id: I555766da0c76c4cf1cfe0baa9416863088088b4e Reviewed-on: https://go-review.googlesource.com/c/go/+/382538 Trust: Robert Findley <rfindley@google.com> Run-TryBot: Robert Findley <rfindley@google.com> Reviewed-by:Robert Griesemer <gri@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Loading
Please sign in to comment