From 7b07310a698bec952fa5f1b9ca64cc92c5de6f0e Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 19 Jan 2012 13:54:31 -0800 Subject: [PATCH] go/parser: expressions may have comments Thanks to 0xE2.0x9A.0x9B for the patch suggestion. Fixes #2739. R=r CC=golang-dev https://golang.org/cl/5536071 --- src/pkg/go/parser/interface.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pkg/go/parser/interface.go b/src/pkg/go/parser/interface.go index 2ce3df8df71..4b72f38518e 100644 --- a/src/pkg/go/parser/interface.go +++ b/src/pkg/go/parser/interface.go @@ -135,8 +135,10 @@ func ParseDir(fset *token.FileSet, path string, filter func(os.FileInfo) bool, m // func ParseExpr(x string) (ast.Expr, error) { // parse x within the context of a complete package for correct scopes; - // use //line directive for correct positions in error messages - file, err := ParseFile(token.NewFileSet(), "", "package p;func _(){_=\n//line :1\n"+x+";}", 0) + // use //line directive for correct positions in error messages and put + // x alone on a separate line (handles line comments), followed by a ';' + // to force an error if the expression is incomplete + file, err := ParseFile(token.NewFileSet(), "", "package p;func _(){_=\n//line :1\n"+x+"\n;}", 0) if err != nil { return nil, err }