Skip to content

Commit cc7e221

Browse files
authored
Merge pull request #4606 from dotty-staging/clean-override-test
Simpler way to test if a new symbol overriddes something
2 parents dd609e2 + 612a281 commit cc7e221

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)