Skip to content

Commit 612a281

Browse files
committed
Simpler way to test if a new symbol overriddes something
1 parent be6ae0e commit 612a281

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

compiler/src/dotty/tools/dotc/ast/tpd.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -286,11 +286,8 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
286286
coord = fns.map(_.pos).reduceLeft(_ union _))
287287
val constr = ctx.newConstructor(cls, Synthetic, Nil, Nil).entered
288288
def forwarder(fn: TermSymbol, name: TermName) = {
289-
var flags = Synthetic | Method | Final
290-
def isOverriden(denot: SingleDenotation) = fn.info.overrides(denot.info, matchLoosely = true)
291-
val isOverride = parents.exists(_.member(name).hasAltWith(isOverriden))
292-
if (isOverride) flags = flags | Override
293-
val fwdMeth = fn.copy(cls, name, flags).entered.asTerm
289+
val fwdMeth = fn.copy(cls, name, Synthetic | Method | Final).entered.asTerm
290+
if (fwdMeth.allOverriddenSymbols.exists(!_.is(Deferred))) fwdMeth.setFlag(Override)
294291
polyDefDef(fwdMeth, tprefs => prefss => ref(fn).appliedToTypes(tprefs).appliedToArgss(prefss))
295292
}
296293
val forwarders = (fns, methNames).zipped.map(forwarder)

0 commit comments

Comments
 (0)