Skip to content

Commit 7a1a141

Browse files
committed
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 8de5256 commit 7a1a141

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
def makeBridgeDef(newDef: tpd.DefDef, parentSym: Symbol)(implicit ctx: Context): tpd.DefDef = {
507509
val newDefSym = newDef.symbol
@@ -512,7 +514,7 @@ object Erasure extends TypeTestsCasts{
512514
???
513515
}
514516
val bridge = ctx.newSymbol(currentClass,
515-
parentSym.name, parentSym.flags | Flags.Bridge, parentSym.info, coord = newDefSym.owner.coord).asTerm
517+
parentSym.name, parentSym.flags &~ NoBridgeFlags | Flags.Bridge, parentSym.info, coord = newDefSym.owner.coord).asTerm
516518
bridge.enteredAfter(ctx.phase.prev.asInstanceOf[DenotTransformer]) // this should be safe, as we're executing in context of next phase
517519
ctx.debuglog(s"generating bridge from ${newDefSym} to $bridge")
518520

0 commit comments

Comments
 (0)