mirror of
https://github.com/golang/go
synced 2024-11-18 11:44:45 -07:00
text/scanner: return RawString token rather than String for raw string literals
Fixes #23675
This commit is contained in:
parent
35ea62468b
commit
f2b3a59d2b
@ -621,7 +621,7 @@ redo:
|
||||
case '`':
|
||||
if s.Mode&ScanRawStrings != 0 {
|
||||
s.scanRawString()
|
||||
tok = String
|
||||
tok = RawString
|
||||
}
|
||||
ch = s.next()
|
||||
default:
|
||||
|
@ -209,10 +209,10 @@ var tokenList = []token{
|
||||
{String, `"` + f100 + `"`},
|
||||
|
||||
{Comment, "// raw strings"},
|
||||
{String, "``"},
|
||||
{String, "`\\`"},
|
||||
{String, "`" + "\n\n/* foobar */\n\n" + "`"},
|
||||
{String, "`" + f100 + "`"},
|
||||
{RawString, "``"},
|
||||
{RawString, "`\\`"},
|
||||
{RawString, "`" + "\n\n/* foobar */\n\n" + "`"},
|
||||
{RawString, "`" + f100 + "`"},
|
||||
|
||||
{Comment, "// individual characters"},
|
||||
// NUL character is not allowed
|
||||
@ -463,9 +463,9 @@ func TestError(t *testing.T) {
|
||||
testError(t, `"ab`+"\x80", "<input>:1:4", "illegal UTF-8 encoding", String)
|
||||
testError(t, `"abc`+"\xff", "<input>:1:5", "illegal UTF-8 encoding", String)
|
||||
|
||||
testError(t, "`a"+"\x00", "<input>:1:3", "illegal character NUL", String)
|
||||
testError(t, "`ab"+"\x80", "<input>:1:4", "illegal UTF-8 encoding", String)
|
||||
testError(t, "`abc"+"\xff", "<input>:1:5", "illegal UTF-8 encoding", String)
|
||||
testError(t, "`a"+"\x00", "<input>:1:3", "illegal character NUL", RawString)
|
||||
testError(t, "`ab"+"\x80", "<input>:1:4", "illegal UTF-8 encoding", RawString)
|
||||
testError(t, "`abc"+"\xff", "<input>:1:5", "illegal UTF-8 encoding", RawString)
|
||||
|
||||
testError(t, `'\"'`, "<input>:1:3", "illegal char escape", Char)
|
||||
testError(t, `"\'"`, "<input>:1:3", "illegal char escape", String)
|
||||
@ -480,7 +480,7 @@ func TestError(t *testing.T) {
|
||||
testError(t, `'`+"\n", "<input>:1:2", "literal not terminated", Char)
|
||||
testError(t, `"abc`, "<input>:1:5", "literal not terminated", String)
|
||||
testError(t, `"abc`+"\n", "<input>:1:5", "literal not terminated", String)
|
||||
testError(t, "`abc\n", "<input>:2:1", "literal not terminated", String)
|
||||
testError(t, "`abc\n", "<input>:2:1", "literal not terminated", RawString)
|
||||
testError(t, `/*/`, "<input>:1:4", "comment not terminated", EOF)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user