FIR: rewrite lambda return type inference
* `return` should only be added to the last statement if the return type is not Unit * If there is a `return` without an argument, then the expected return type is Unit and the last expression is not a return argument (unless it's an incomplete call, in which case it is inferred to return Unit; this behavior is questionable, but inherited from K1) * There should be a constraint on return arguments even if the expected type is Unit, otherwise errors will be missed * When the expected type is known, using the call completion results writer is pointless (and probably subtly wrong). ^KT-54742 Fixed
This commit is contained in:
Vendored
+1
-1
@@ -18,7 +18,7 @@ FILE: coercionToUnitWithEarlyReturn.kt
|
||||
}
|
||||
}
|
||||
|
||||
^ R|<local>/x|?.{ $subj$.R|/A.unit|() }
|
||||
R|<local>/x|?.{ $subj$.R|/A.unit|() }
|
||||
}
|
||||
|
||||
R|/foo|(R|<local>/lambda|)
|
||||
|
||||
Reference in New Issue
Block a user