@@ -888,7 +888,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
888888 throw ex
889889 compareCapturing || fourthTry
890890 case QualifiedType (parent2, qualifier2) =>
891- QualifiedTypes .typeImplies (tp1, qualifier2 ) && recur (tp1, parent2 )
891+ recur (tp1, parent2 ) && QualifiedTypes .typeImplies (tp1, qualifier2, qualifierSolver() )
892892 case tp2 : AnnotatedType if tp2.isRefining =>
893893 (tp1.derivesAnnotWith(tp2.annot.sameAnnotation) || tp1.isBottomType) &&
894894 recur(tp1, tp2.parent)
@@ -3309,6 +3309,7 @@ class TypeComparer(@constructorOnly initctx: Context) extends ConstraintHandling
33093309
33103310 protected def explainingTypeComparer (short : Boolean ) = ExplainingTypeComparer (comparerContext, short)
33113311 protected def matchReducer = MatchReducer (comparerContext)
3312+ protected def qualifierSolver () = qualified_types.QualifierSolver (using comparerContext)
33123313
33133314 private def inSubComparer [T , Cmp <: TypeComparer ](comparer : Cmp )(op : Cmp => T ): T =
33143315 val saved = myInstance
@@ -3974,7 +3975,7 @@ class ExplainingTypeComparer(initctx: Context, short: Boolean) extends TypeCompa
39743975 lastForwardGoal = null
39753976
39763977 override def traceIndented [T ](str : String )(op : => T ): T =
3977- val str1 = str.replace( ' \n ' , ' ' )
3978+ val str1 = str
39783979 if short && str1 == lastForwardGoal then
39793980 op // repeated goal, skip for clarity
39803981 else
@@ -4043,5 +4044,9 @@ class ExplainingTypeComparer(initctx: Context, short: Boolean) extends TypeCompa
40434044 super .subCaptures(refs1, refs2, vs)
40444045 }
40454046
4047+ override def qualifierSolver () =
4048+ val traceIndented0 = [T ] => (message : String ) => traceIndented[T ](message)
4049+ qualified_types.ExplainingQualifierSolver (traceIndented0)(using comparerContext)
4050+
40464051 def lastTrace (header : String ): String = header + { try b.toString finally b.clear() }
40474052}
0 commit comments