diff --git a/compiler/src/dotty/tools/dotc/ast/tpd.scala b/compiler/src/dotty/tools/dotc/ast/tpd.scala index 62fd9cc45751..f78a6610a8a9 100644 --- a/compiler/src/dotty/tools/dotc/ast/tpd.scala +++ b/compiler/src/dotty/tools/dotc/ast/tpd.scala @@ -286,11 +286,8 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo { coord = fns.map(_.pos).reduceLeft(_ union _)) val constr = ctx.newConstructor(cls, Synthetic, Nil, Nil).entered def forwarder(fn: TermSymbol, name: TermName) = { - var flags = Synthetic | Method | Final - def isOverriden(denot: SingleDenotation) = fn.info.overrides(denot.info, matchLoosely = true) - val isOverride = parents.exists(_.member(name).hasAltWith(isOverriden)) - if (isOverride) flags = flags | Override - val fwdMeth = fn.copy(cls, name, flags).entered.asTerm + val fwdMeth = fn.copy(cls, name, Synthetic | Method | Final).entered.asTerm + if (fwdMeth.allOverriddenSymbols.exists(!_.is(Deferred))) fwdMeth.setFlag(Override) polyDefDef(fwdMeth, tprefs => prefss => ref(fn).appliedToTypes(tprefs).appliedToArgss(prefss)) } val forwarders = (fns, methNames).zipped.map(forwarder)