@@ -357,7 +357,9 @@ private [parsley] final class EmptyErrorWithReason(val presentationOffset: Int,
357
357
}
358
358
359
359
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 )
361
363
assume(err1.underlyingOffset == err2.underlyingOffset, " two errors only merge when they have matching offsets" )
362
364
override val underlyingOffset = err1.underlyingOffset
363
365
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
369
371
}
370
372
371
373
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 )
373
377
assume(err1.underlyingOffset == err2.underlyingOffset, " two errors only merge when they have matching offsets" )
374
378
override val underlyingOffset = err1.underlyingOffset
375
379
assume(err1.presentationOffset == err2.presentationOffset, " two errors only merge when they have matching offsets" )
0 commit comments