diff options
Diffstat (limited to 'src/cmd/compile/internal/syntax/parser.go')
-rw-r--r-- | src/cmd/compile/internal/syntax/parser.go | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index 39e7347849..7093a7a606 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -291,7 +291,7 @@ func (p *parser) importDecl(group *Group) Decl { d.LocalPkgName = n p.next() } - if p.tok == _Literal && (p.lit[0] == '"' || p.lit[0] == '`') { + if p.tok == _Literal && p.kind == StringLit { d.Path = p.oliteral() } else { p.syntax_error("missing import path; require quoted string") @@ -570,16 +570,12 @@ func (p *parser) operand(keep_parens bool) Expr { } switch p.tok { - case _Literal: - x := new(BasicLit) - x.init(p) - x.Value = p.lit - p.next() - return x - case _Name: return p.name() + case _Literal: + return p.oliteral() + case _Lparen: p.next() p.xnest++ @@ -1192,6 +1188,7 @@ func (p *parser) oliteral() *BasicLit { b := new(BasicLit) b.init(p) b.Value = p.lit + b.Kind = p.kind p.next() return b } |