Fix type constraints of empty lambda (KT-28654 fix)
This commit is contained in:
+3
-1
@@ -98,7 +98,9 @@ class PostponedArgumentsAnalyzer(
|
||||
|
||||
if (returnArguments.isEmpty()) {
|
||||
val unitType = lambda.returnType.builtIns.unitType
|
||||
c.getBuilder().addSubtypeConstraint(lambda.returnType.let(::substitute), unitType, LambdaArgumentConstraintPosition(lambda))
|
||||
val lambdaReturnType = lambda.returnType.let(::substitute)
|
||||
c.getBuilder().addSubtypeConstraint(lambdaReturnType, unitType, LambdaArgumentConstraintPosition(lambda))
|
||||
c.getBuilder().addSubtypeConstraint(unitType, lambdaReturnType, LambdaArgumentConstraintPosition(lambda))
|
||||
}
|
||||
|
||||
lambda.setAnalyzedResults(returnArguments, subResolvedKtPrimitives)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
// Related issue: KT-28654
|
||||
|
||||
fun <K> select(): K = <!OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>run { <!OI;TYPE_MISMATCH!><!>}<!>
|
||||
fun <K> select(): K = <!NI;TYPE_MISMATCH, OI;TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH!>run { <!OI;TYPE_MISMATCH!><!>}<!>
|
||||
|
||||
fun test() {
|
||||
val x: Int = select()
|
||||
|
||||
Reference in New Issue
Block a user