Skip to content

Commit 0aa3ae5

Browse files
committed
Go back to checking all base classes.
I was hoping to avoid an explosion of tests, by doing it via parents only. But to do that we'd need to check even abstract classes and traits, which we don't do now. But even then, you could skip a parent via a java parent I think? So I'm just reverting back to how it was before: all base classes of concrete classes.
1 parent 271f4cf commit 0aa3ae5

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

compiler/src/dotty/tools/dotc/typer/RefChecks.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -781,8 +781,8 @@ object RefChecks {
781781
* can assume invariant refinement for classes in `constrainPatternType`.
782782
*/
783783
def checkClassInheritanceInvariant() =
784-
for (middle <- clazz.parentSyms)
785-
for (baseCls <- middle.asClass.parentSyms)
784+
for (middle <- clazz.info.baseClasses.tail)
785+
for (baseCls <- middle.info.baseClasses.tail)
786786
if (baseCls.typeParams.exists(_.paramVarianceSign != 0))
787787
val middleStr = if middle.is(Case) then "case " else ""
788788
for (problem <- variantInheritanceProblems(baseCls, middle, "variant", middleStr))

0 commit comments

Comments
 (0)