@@ -283,7 +283,8 @@ method match(self: Required, left: seq[Pattern],
283
283
collected: seq [Pattern] = @ []) : MatchResult =
284
284
result = (true , left, collected)
285
285
for pattern in self.children:
286
- result = pattern.match(result .left, result .collected)
286
+ let t = pattern.match(result .left, result .collected)
287
+ result = t
287
288
if not result .matched:
288
289
return (false , left, collected)
289
290
@@ -292,7 +293,8 @@ method match(self: Optional, left: seq[Pattern],
292
293
collected: seq [Pattern] = @ []) : MatchResult =
293
294
result = (true , left, collected)
294
295
for pattern in self.children:
295
- result = pattern.match(result .left, result .collected)
296
+ let t = pattern.match(result .left, result .collected)
297
+ result = t
296
298
result .matched = true
297
299
298
300
@@ -304,7 +306,8 @@ method match(self: OneOrMore, left: seq[Pattern],
304
306
var times = 0
305
307
while result .matched:
306
308
# could it be that something didn't match but changed l or c?
307
- result = self.children[0 ].match(result .left, result .collected)
309
+ let t = self.children[0 ].match(result .left, result .collected)
310
+ result = t
308
311
if result .matched:
309
312
times += 1
310
313
if l2 == result .left:
0 commit comments