1
0
mirror of https://github.com/golang/go synced 2024-11-23 00:40:08 -07:00

go/build: skip rune literals when looking for go:embed

Fixes #49514

Change-Id: Id687eead731ba49974f11d2e5b489f11eff7d07b
Reviewed-on: https://go-review.googlesource.com/c/go/+/363275
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
Ian Lance Taylor 2021-11-10 20:28:45 -08:00
parent eb68e3367b
commit c622d1d3f6
2 changed files with 26 additions and 0 deletions

View File

@ -60,6 +60,11 @@ func testDir(t *testing.T, f embed.FS, name string, expect ...string) {
}
}
// Tests for issue 49514.
var _ = '"'
var _ = '\''
var _ = '🦆'
func TestGlobal(t *testing.T) {
testFiles(t, global, "concurrency.txt", "Concurrency is not parallelism.\n")
testFiles(t, global, "testdata/hello.txt", "hello, world\n")

View File

@ -240,6 +240,27 @@ func (r *importReader) findEmbed(first bool) bool {
}
}
case '\'':
startLine = false
for r.err == nil {
if r.eof {
r.syntaxError()
}
c = r.readByteNoBuf()
if c == '\\' {
r.readByteNoBuf()
if r.err != nil {
r.syntaxError()
return false
}
continue
}
if c == '\'' {
c = r.readByteNoBuf()
goto Reswitch
}
}
case '/':
c = r.readByteNoBuf()
switch c {