Skip to content

Commit ebb3917

Browse files
oderskyDarkDimius
authored andcommitted
Reset some flags for bridges.
Bridges are never accessors, deferred, or lazy. Scalac removes these flags, I guess this was dropped as an oversight. The change is needed to make the next commit work.
1 parent de67c05 commit ebb3917

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/dotty/tools/dotc/transform/Erasure.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,8 @@ object Erasure extends TypeTestsCasts{
502502

503503
traverse(newStats, oldStats)
504504
}
505+
506+
private final val NoBridgeFlags = Flags.Accessor | Flags.Deferred | Flags.Lazy
505507

506508
/** Create a bridge DefDef which overrides a parent method.
507509
*
@@ -520,7 +522,7 @@ object Erasure extends TypeTestsCasts{
520522
???
521523
}
522524
val bridge = ctx.newSymbol(currentClass,
523-
parentSym.name, parentSym.flags | Flags.Bridge, parentSym.info, coord = newDefSym.owner.coord).asTerm
525+
parentSym.name, parentSym.flags &~ NoBridgeFlags | Flags.Bridge, parentSym.info, coord = newDefSym.owner.coord).asTerm
524526
bridge.enteredAfter(ctx.phase.prev.asInstanceOf[DenotTransformer]) // this should be safe, as we're executing in context of next phase
525527
ctx.debuglog(s"generating bridge from ${newDefSym} to $bridge")
526528

0 commit comments

Comments
 (0)