Do not export things after '='
diff --git a/parser.go b/parser.go
index a601871..b20acab 100644
--- a/parser.go
+++ b/parser.go
@@ -442,7 +442,17 @@
return line
}
-func handleExport(p *parser, line []byte, export bool) {
+func handleExport(p *parser, line []byte, export bool) (hasEqual bool) {
+ equalIndex := bytes.IndexByte(line, '=')
+ if equalIndex > 0 {
+ hasEqual = true
+ switch line[equalIndex-1] {
+ case ':', '+', '?':
+ equalIndex--
+ }
+ line = line[:equalIndex]
+ }
+
ast := &ExportAST{
expr: line,
export: export,
@@ -450,6 +460,7 @@
ast.filename = p.mk.filename
ast.lineno = p.lineno
p.addStatement(ast)
+ return hasEqual
}
func exportDirective(p *parser, line []byte) []byte {
@@ -463,10 +474,7 @@
return nil
}
- handleExport(p, line, true)
-
- // e.g., export FOO BAR
- if !bytes.Contains(line, []byte{'='}) {
+ if !handleExport(p, line, true) {
return nil
}