Skip to content

Commit 541473e

Browse files
committed
backport for #226
1 parent 55f5e45 commit 541473e

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

parsley/shared/src/main/scala/parsley/internal/machine/errors/DefuncError.scala

+6-2
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,9 @@ private [parsley] final class EmptyErrorWithReason(val presentationOffset: Int,
357357
}
358358

359359
private [errors] final class TrivialMergedErrors private [errors] (val err1: TrivialDefuncError, val err2: TrivialDefuncError) extends TrivialDefuncError {
360-
override final val flags = err1.flags & err2.flags
360+
// FIXME: this is horrid, split out the flags at this point, we'll do 16-bit and 8-bit
361+
override final val flags = scala.math.max(err1.entrenchedBy, err2.entrenchedBy) |
362+
(err1.flags & err2.flags & ~DefuncError.EntrenchedMask)
361363
assume(err1.underlyingOffset == err2.underlyingOffset, "two errors only merge when they have matching offsets")
362364
override val underlyingOffset = err1.underlyingOffset
363365
assume(err1.presentationOffset == err2.presentationOffset, "two errors only merge when they have matching offsets")
@@ -369,7 +371,9 @@ private [errors] final class TrivialMergedErrors private [errors] (val err1: Tri
369371
}
370372

371373
private [errors] final class FancyMergedErrors private [errors] (val err1: FancyDefuncError, val err2: FancyDefuncError) extends FancyDefuncError {
372-
override final val flags = err1.flags & err2.flags
374+
// FIXME: this is horrid, split out the flags at this point, we'll do 16-bit and 8-bit
375+
override final val flags = scala.math.max(err1.entrenchedBy, err2.entrenchedBy) |
376+
(err1.flags & err2.flags & ~DefuncError.EntrenchedMask)
373377
assume(err1.underlyingOffset == err2.underlyingOffset, "two errors only merge when they have matching offsets")
374378
override val underlyingOffset = err1.underlyingOffset
375379
assume(err1.presentationOffset == err2.presentationOffset, "two errors only merge when they have matching offsets")

0 commit comments

Comments
 (0)