File tree 2 files changed +20
-14
lines changed
compiler/src/dotty/tools/dotc/core 2 files changed +20
-14
lines changed Original file line number Diff line number Diff line change @@ -1037,20 +1037,17 @@ class TypeComparer(using val comparerCtx: Context) extends ConstraintHandling wi
1037
1037
case _ => false
1038
1038
}
1039
1039
1040
- tp1.widen match {
1041
- case tp1w : AppliedType => appOK(tp1w)
1042
- case tp1w =>
1043
- tp1w.typeSymbol.isClass && {
1044
- val classBounds = tycon2.classSymbols
1045
- def liftToBase (bcs : List [ClassSymbol ]): Boolean = bcs match {
1046
- case bc :: bcs1 =>
1047
- classBounds.exists(bc.derivesFrom) && appOK(nonExprBaseType(tp1, bc))
1048
- || liftToBase(bcs1)
1049
- case _ =>
1050
- false
1051
- }
1052
- liftToBase(tp1w.baseClasses)
1053
- }
1040
+ val tp1w = tp1.widen
1041
+ appOK(tp1w) || tp1w.typeSymbol.isClass && {
1042
+ val classBounds = tycon2.classSymbols
1043
+ def liftToBase (bcs : List [ClassSymbol ]): Boolean = bcs match {
1044
+ case bc :: bcs1 =>
1045
+ classBounds.exists(bc.derivesFrom) && appOK(nonExprBaseType(tp1, bc))
1046
+ || liftToBase(bcs1)
1047
+ case _ =>
1048
+ false
1049
+ }
1050
+ liftToBase(tp1w.baseClasses)
1054
1051
}
1055
1052
}
1056
1053
Original file line number Diff line number Diff line change
1
+ class Two [A , B ]
2
+ class One [A ] extends Two [A , A ]
3
+
4
+ object Test {
5
+ def foo [F [_, _]](x : F [Int , Int ]) = x
6
+
7
+ val t : One [Int ] = ???
8
+ foo(t)
9
+ }
You can’t perform that action at this time.
0 commit comments