Skip to content

Commit 6ac7520

Browse files
authored
Merge pull request #4641 from dotty-staging/fix-#4623
Fix #4623: Don't check for repeated parents in refinement classes
2 parents 35cf4a6 + 7e3ca76 commit 6ac7520

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1491,7 +1491,8 @@ class Typer extends Namer
14911491
def typedParent(tree: untpd.Tree): Tree = {
14921492
var result = if (tree.isType) typedType(tree)(superCtx) else typedExpr(tree)(superCtx)
14931493
val psym = result.tpe.typeSymbol
1494-
if (seenParents.contains(psym)) ctx.error(i"$psym is extended twice", tree.pos)
1494+
if (seenParents.contains(psym) && !cls.isRefinementClass)
1495+
ctx.error(i"$psym is extended twice", tree.pos)
14951496
seenParents += psym
14961497
if (tree.isType) {
14971498
if (psym.is(Trait) && !cls.is(Trait) && !cls.superClass.isSubClass(psym))

tests/pos/i4623.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
trait Test {
2+
type A <: Any { type T }
3+
type B <: Any { type T }
4+
type C <: A with B { type T }
5+
6+
type D <: List[A] with List[B] { type T }
7+
}

0 commit comments

Comments
 (0)