File tree Expand file tree Collapse file tree 2 files changed +5
-11
lines changed
Sources/_StringProcessing Expand file tree Collapse file tree 2 files changed +5
-11
lines changed Original file line number Diff line number Diff line change @@ -296,8 +296,8 @@ fileprivate extension Compiler.ByteCodeGen {
296296 save(restoringAt: success)
297297 save(restoringAt: intercept)
298298 <sub-pattern> // failure restores at intercept
299- clearThrough(intercept) // remove intercept and any leftovers from <sub-pattern>
300- fail // ->success
299+ clearThrough(intercept) // remove intercept and any leftovers from <sub-pattern>
300+ fail(preservingCaptures: true) // ->success
301301 intercept:
302302 clearSavePoint // remove success
303303 fail // propagate failure
@@ -370,8 +370,8 @@ fileprivate extension Compiler.ByteCodeGen {
370370 save(continuingAt: success)
371371 save(restoringAt: intercept)
372372 <sub-pattern> // failure restores at intercept
373- clearThrough(intercept) // remove intercept and any leftovers from <sub-pattern>
374- fail // ->success
373+ clearThrough(intercept) // remove intercept and any leftovers from <sub-pattern>
374+ fail(preservingCaptures: true) // ->success
375375 intercept:
376376 clearSavePoint // remove success
377377 fail // propagate failure
Original file line number Diff line number Diff line change @@ -354,13 +354,7 @@ extension Processor {
354354 registers. ints = intRegisters
355355 registers. positions = posRegisters
356356
357- if preservingCaptures {
358- for i in capEnds. indices {
359- if storedCaptures [ i] . range == nil {
360- storedCaptures [ i] . currentCaptureBegin = capEnds [ i] . currentCaptureBegin
361- }
362- }
363- } else {
357+ if !preservingCaptures {
364358 // Reset all capture information
365359 storedCaptures = capEnds
366360 }
You can’t perform that action at this time.
0 commit comments