[NI] Fix variable to proper upper type even if direction is TO_SUBTYPE.
This commit is contained in:
committed by
Mikhail Zarechenskiy
parent
b3be21146c
commit
7eabdeffb3
+7
-3
@@ -65,8 +65,6 @@ class ResultTypeResolver(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (direction == ResolveDirection.TO_SUBTYPE) return builtIns.nothingType
|
|
||||||
|
|
||||||
// direction == TO_SUPER or there is no LOWER bounds
|
// direction == TO_SUPER or there is no LOWER bounds
|
||||||
val upperConstraints = variableWithConstraints.constraints.filter { it.kind == ConstraintKind.UPPER && c.isProperType(it.type) }
|
val upperConstraints = variableWithConstraints.constraints.filter { it.kind == ConstraintKind.UPPER && c.isProperType(it.type) }
|
||||||
if (upperConstraints.isNotEmpty()) {
|
if (upperConstraints.isNotEmpty()) {
|
||||||
@@ -75,7 +73,13 @@ class ResultTypeResolver(
|
|||||||
return typeApproximator.approximateToSubType(upperType, TypeApproximatorConfiguration.CapturedTypesApproximation) ?: upperType
|
return typeApproximator.approximateToSubType(upperType, TypeApproximatorConfiguration.CapturedTypesApproximation) ?: upperType
|
||||||
}
|
}
|
||||||
|
|
||||||
return builtIns.anyType
|
// no proper constraints
|
||||||
|
if (direction == ResolveDirection.TO_SUBTYPE) {
|
||||||
|
return builtIns.nothingType
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return builtIns.anyType
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun findResultIfThereIsEqualsConstraint(
|
fun findResultIfThereIsEqualsConstraint(
|
||||||
|
|||||||
Reference in New Issue
Block a user