Skip to content

Commit 85f9a70

Browse files
committed
Move NoInit checks to Mixin
1 parent cf52f93 commit 85f9a70

File tree

2 files changed

+2
-5
lines changed

2 files changed

+2
-5
lines changed

compiler/src/dotty/tools/dotc/core/Definitions.scala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -971,10 +971,7 @@ class Definitions {
971971
* trait gets screwed up. Therefore, it is mandatory that FunctionXXL
972972
* is treated as a NoInit trait.
973973
*/
974-
private lazy val NoInitClasses = NotRuntimeClasses + FunctionXXLClass
975-
976-
def isNoInitClass(cls: Symbol): Boolean =
977-
cls.is(NoInitsTrait) || NoInitClasses.contains(cls) || isFunctionClass(cls)
974+
lazy val NoInitClasses = NotRuntimeClasses + FunctionXXLClass
978975

979976
def isPolymorphicAfterErasure(sym: Symbol) =
980977
(sym eq Any_isInstanceOf) || (sym eq Any_asInstanceOf)

compiler/src/dotty/tools/dotc/transform/Mixin.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ class Mixin extends MiniPhase with SymTransformer { thisPhase =>
182182
if (defn.NotRuntimeClasses.contains(baseCls) || baseCls.is(NoInitsTrait)) Nil
183183
else call :: Nil
184184
case None =>
185-
if (defn.isNoInitClass(baseCls)) Nil
185+
if (baseCls.is(NoInitsTrait) || defn.NoInitClasses.contains(baseCls) || defn.isFunctionClass(baseCls)) Nil
186186
else {
187187
//println(i"synth super call ${baseCls.primaryConstructor}: ${baseCls.primaryConstructor.info}")
188188
transformFollowingDeep(superRef(baseCls.primaryConstructor).appliedToNone) :: Nil

0 commit comments

Comments
 (0)