summaryrefslogtreecommitdiff
path: root/test/files/run/all-overridden.scala
Commit message (Collapse)AuthorAgeFilesLines
* Fix and optimization in overriding logic.Paul Phillips2013-02-191-0/+11
Given: trait Foo { def f: Int = 5 } trait Bar extends Foo { def f: Int } I noticed allOverriddenSymbols for the abstract f defined in Bar was returning the method from Foo, even though an abstract method cannot override a concrete one. There were other bits of code which accidentally depended on this outcome. Now allOverriddenSymbols for Bar is empty. The optimization is that whether or not a symbol overrides any other symbols is known at creation time and does not change. We now spend a lot less time looking for overridden symbols in base classes by storing that value, "isOverridingSymbol".