Skip to content

Commit e517975

Browse files
committed
Fix #8056: Handle and/or types in translateParameterized
1 parent 54ab00e commit e517975

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,10 @@ class TypeApplications(val self: Type) extends AnyVal {
455455
self.derivedExprType(tp.translateParameterized(from, to))
456456
case _ =>
457457
if (self.derivesFrom(from)) {
458-
val arg = self.baseType(from).argInfos.head
458+
def elemType(tp: Type): Type = tp match
459+
case tp: AndOrType => tp.derivedAndOrType(elemType(tp.tp1), elemType(tp.tp2))
460+
case _ => tp.baseType(from).argInfos.head
461+
val arg = elemType(self)
459462
val arg1 = if (wildcardArg) TypeBounds.upper(arg) else arg
460463
to.typeRef.appliedTo(arg1)
461464
}

0 commit comments

Comments
 (0)