11package dotty .tools .backend .jvm
22
3- import dotty .tools .dotc .ast .tpd . _
4- import dotty .tools .dotc .ast .Trees
3+ import dotty .tools .dotc .ast .tpd
4+ import dotty .tools .dotc .ast .Trees . _
55import dotty .tools .dotc .core .Contexts .Context
66import dotty .tools .dotc .core .Symbols ._
77import dotty .tools .dotc .transform .TreeTransforms .{MiniPhaseTransform , TransformerInfo }
@@ -14,17 +14,18 @@ import dotty.tools.dotc.transform.TreeTransforms.{MiniPhaseTransform, Transforme
1414 * the redundant mixin class could be required as a parent by the JVM.
1515 */
1616class CollectSuperCalls extends MiniPhaseTransform {
17+ import tpd ._
1718
1819 def phaseName : String = " collectSuperCalls"
1920
20- override def transformSuper (tree : Super )(implicit ctx : Context , info : TransformerInfo ): Tree = {
21- tree match {
22- case Trees . Super (qual : This , mix) if mix.nonEmpty =>
21+ override def transformSelect (tree : Select )(implicit ctx : Context , info : TransformerInfo ): Tree = {
22+ tree.qualifier match {
23+ case Super (qual : This , mix) if mix.nonEmpty =>
2324 val classSymbol = qual.symbol.asClass.classSymbol
24- registerSuperCall(classSymbol, tree.tpe.baseClasses.head )
25+ registerSuperCall(classSymbol, tree.symbol.owner.asClass )
2526 case _ =>
2627 }
27- super .transformSuper( tree)
28+ tree
2829 }
2930
3031 private def registerSuperCall (sym : ClassSymbol , calls : ClassSymbol )(implicit ctx : Context ) = {
0 commit comments