1
0
mirror of https://github.com/golang/go synced 2024-11-26 07:27:59 -07:00

[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 <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
This commit is contained in:
Rob Findley 2020-12-08 15:01:32 -05:00 committed by Robert Findley
parent b6e678573d
commit 6015c4e543
3 changed files with 8 additions and 2 deletions

View File

@ -372,7 +372,9 @@ type (
Args []Expr // function arguments; or nil Args []Expr // function arguments; or nil
Ellipsis token.Pos // position of "..." (token.NoPos if there is no "...") Ellipsis token.Pos // position of "..." (token.NoPos if there is no "...")
Rparen token.Pos // position of ")" 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. // A StarExpr node represents an expression of the form "*" Expression.
@ -987,6 +989,8 @@ type (
Name *Ident // function/method name Name *Ident // function/method name
Type *FuncType // function signature: type and value parameters, results, and position of "func" keyword 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 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
} }
) )

View File

@ -798,7 +798,7 @@ func (p *parser) parseFieldDecl(scope *ast.Scope) *ast.Field {
} else { } else {
// embedded, possibly generic type // embedded, possibly generic type
// (using the enclosing parentheses to distinguish it from a named field declaration) // (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() typ = p.parseType()
} }
@ -870,6 +870,7 @@ type field struct {
} }
func (p *parser) parseParamDecl(name *ast.Ident) (f field) { func (p *parser) parseParamDecl(name *ast.Ident) (f field) {
// TODO(rFindley) compare with parser.paramDeclOrNil in the syntax package
if p.trace { if p.trace {
defer un(trace(p, "ParamDeclOrNil")) defer un(trace(p, "ParamDeclOrNil"))
} }

View File

@ -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) { func writeTParamList(buf *bytes.Buffer, list []*TypeName, qf Qualifier, visited []Type) {
// TODO(rFindley) compare this with the corresponding implementation in types2
buf.WriteString("[") buf.WriteString("[")
var prev Type var prev Type
for i, p := range list { for i, p := range list {