File tree 2 files changed +55
-0
lines changed
2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change @@ -171,6 +171,41 @@ func (r *importReader) findEmbed(first bool) bool {
171
171
case ' ' , '\t' :
172
172
// leave startLine alone
173
173
174
+ case '"' :
175
+ startLine = false
176
+ for r .err == nil {
177
+ if r .eof {
178
+ r .syntaxError ()
179
+ }
180
+ c = r .readByteNoBuf ()
181
+ if c == '\\' {
182
+ r .readByteNoBuf ()
183
+ if r .err != nil {
184
+ r .syntaxError ()
185
+ return false
186
+ }
187
+ continue
188
+ }
189
+ if c == '"' {
190
+ c = r .readByteNoBuf ()
191
+ goto Reswitch
192
+ }
193
+ }
194
+ goto Reswitch
195
+
196
+ case '`' :
197
+ startLine = false
198
+ for r .err == nil {
199
+ if r .eof {
200
+ r .syntaxError ()
201
+ }
202
+ c = r .readByteNoBuf ()
203
+ if c == '`' {
204
+ c = r .readByteNoBuf ()
205
+ goto Reswitch
206
+ }
207
+ }
208
+
174
209
case '/' :
175
210
c = r .readByteNoBuf ()
176
211
switch c {
Original file line number Diff line number Diff line change @@ -255,6 +255,26 @@ var readEmbedTests = []struct {
255
255
"package p\n import \" embed\" \n //go:embed x y z\n var files embed.FS" ,
256
256
[]string {"x" , "y" , "z" },
257
257
},
258
+ {
259
+ "package p\n import \" embed\" \n var s = \" /*\" \n //go:embed x\n var files embed.FS" ,
260
+ []string {"x" },
261
+ },
262
+ {
263
+ `package p
264
+ import "embed"
265
+ var s = "\"\\\\"
266
+ //go:embed x
267
+ var files embed.FS` ,
268
+ []string {"x" },
269
+ },
270
+ {
271
+ "package p\n import \" embed\" \n var s = `/*`\n //go:embed x\n var files embed.FS" ,
272
+ []string {"x" },
273
+ },
274
+ {
275
+ "package p\n import \" embed\" \n var s = z/ *y\n //go:embed pointer\n var pointer embed.FS" ,
276
+ []string {"pointer" },
277
+ },
258
278
{
259
279
"package p\n //go:embed x y z\n " , // no import, no scan
260
280
nil ,
You can’t perform that action at this time.
0 commit comments