[NI] Fix hierarchy of resolution atoms for lambda with non-local return
This commit is contained in:
+8
-9
@@ -123,18 +123,17 @@ class KotlinResolutionCallbacksImpl(
|
||||
}
|
||||
}
|
||||
|
||||
if (!hasReturnWithoutExpression) {
|
||||
val lastExpressionArgument = getLastDeparentesizedExpression(psiCallArgument)?.let { lastExpression ->
|
||||
if (expectedReturnType?.isUnit() == true) return@let null // coercion to Unit
|
||||
val lastExpressionArgument = getLastDeparentesizedExpression(psiCallArgument)?.let { lastExpression ->
|
||||
if (expectedReturnType?.isUnit() == true) return@let null // coercion to Unit
|
||||
|
||||
// todo lastExpression can be if without else
|
||||
val lastExpressionType = trace.getType(lastExpression)
|
||||
val lastExpressionTypeInfo = KotlinTypeInfo(lastExpressionType, lambdaInfo.dataFlowInfoAfter ?: functionTypeInfo.dataFlowInfo)
|
||||
createCallArgument(lastExpression, lastExpressionTypeInfo)
|
||||
}
|
||||
returnArguments.addIfNotNull(lastExpressionArgument)
|
||||
// todo lastExpression can be if without else
|
||||
val lastExpressionType = if (hasReturnWithoutExpression) null else trace.getType(lastExpression)
|
||||
val lastExpressionTypeInfo = KotlinTypeInfo(lastExpressionType, lambdaInfo.dataFlowInfoAfter ?: functionTypeInfo.dataFlowInfo)
|
||||
createCallArgument(lastExpression, lastExpressionTypeInfo)
|
||||
}
|
||||
|
||||
returnArguments.addIfNotNull(lastExpressionArgument)
|
||||
|
||||
return returnArguments
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user