From 6015c4e543bcf07c01a4221ecf7692162653fa24 Mon Sep 17 00:00:00 2001 From: Rob Findley Date: Tue, 8 Dec 2020 15:01:32 -0500 Subject: [PATCH] [dev.typeparams] go/*: add TODOs from CLs importing dev.go2go changes With the plurality of CLs importing dev.go2go changes it's getting hard to track all of the code review comments that were deferred for later consideration. Add some TODOs to capture these comments in the source, so that they may be more easily located. Change-Id: I5caf085fec11ca8992b7affe6feb0a7aa202f21f Reviewed-on: https://go-review.googlesource.com/c/go/+/276254 Trust: Robert Findley Run-TryBot: Robert Findley TryBot-Result: Go Bot Reviewed-by: Robert Griesemer --- src/go/ast/ast.go | 6 +++++- src/go/parser/parser.go | 3 ++- src/go/types/typestring.go | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/go/ast/ast.go b/src/go/ast/ast.go index 8195ec022f..2456020c5e 100644 --- a/src/go/ast/ast.go +++ b/src/go/ast/ast.go @@ -372,7 +372,9 @@ type ( Args []Expr // function arguments; or nil Ellipsis token.Pos // position of "..." (token.NoPos if there is no "...") Rparen token.Pos // position of ")" - Brackets bool // if set, "[" and "]" are used instead of "(" and ")" + // TODO(rFindley) use a new ListExpr type rather than overloading CallExpr + // via Brackets, as is done in the syntax package + Brackets bool // if set, "[" and "]" are used instead of "(" and ")" } // A StarExpr node represents an expression of the form "*" Expression. @@ -987,6 +989,8 @@ type ( Name *Ident // function/method name Type *FuncType // function signature: type and value parameters, results, and position of "func" keyword Body *BlockStmt // function body; or nil for external (non-Go) function + // TODO(rFindley) consider storing TParams here, rather than FuncType, as + // they are only valid for declared functions } ) diff --git a/src/go/parser/parser.go b/src/go/parser/parser.go index 9c414c411e..24e84d5103 100644 --- a/src/go/parser/parser.go +++ b/src/go/parser/parser.go @@ -798,7 +798,7 @@ func (p *parser) parseFieldDecl(scope *ast.Scope) *ast.Field { } else { // embedded, possibly generic type // (using the enclosing parentheses to distinguish it from a named field declaration) - // TODO(gri) confirm that this doesn't allow parenthesized embedded type + // TODO(rFindley) confirm that this doesn't allow parenthesized embedded type typ = p.parseType() } @@ -870,6 +870,7 @@ type field struct { } func (p *parser) parseParamDecl(name *ast.Ident) (f field) { + // TODO(rFindley) compare with parser.paramDeclOrNil in the syntax package if p.trace { defer un(trace(p, "ParamDeclOrNil")) } diff --git a/src/go/types/typestring.go b/src/go/types/typestring.go index c82fa3395b..b9c227d460 100644 --- a/src/go/types/typestring.go +++ b/src/go/types/typestring.go @@ -313,6 +313,7 @@ func writeTypeList(buf *bytes.Buffer, list []Type, qf Qualifier, visited []Type) } func writeTParamList(buf *bytes.Buffer, list []*TypeName, qf Qualifier, visited []Type) { + // TODO(rFindley) compare this with the corresponding implementation in types2 buf.WriteString("[") var prev Type for i, p := range list { -- 2.48.1