[FIR] Avoid integer literal types in lambda analysis
Partial fix of KT-38473
This commit is contained in:
+10
-1
@@ -345,7 +345,16 @@ class FirCallCompletionResultsWriterTransformer(
|
|||||||
anonymousFunction.constructFunctionalTypeRef(session, isSuspend = expectedType?.isSuspendFunctionType(session) == true)
|
anonymousFunction.constructFunctionalTypeRef(session, isSuspend = expectedType?.isSuspendFunctionType(session) == true)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
return transformElement(anonymousFunction, null)
|
val result = transformElement(anonymousFunction, null)
|
||||||
|
val resultFunction = result.single
|
||||||
|
if (resultFunction.returnTypeRef.coneTypeSafe<ConeIntegerLiteralType>() != null) {
|
||||||
|
val blockType = resultFunction.body?.typeRef?.coneTypeSafe<ConeKotlinType>()
|
||||||
|
resultFunction.replaceReturnTypeRef(resultFunction.returnTypeRef.withReplacedConeType(blockType))
|
||||||
|
resultFunction.replaceTypeRef(
|
||||||
|
resultFunction.constructFunctionalTypeRef(session, isSuspend = expectedType?.isSuspendFunctionType(session) == true)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun transformBlock(block: FirBlock, data: ExpectedArgumentType?): CompositeTransformResult<FirStatement> {
|
override fun transformBlock(block: FirBlock, data: ExpectedArgumentType?): CompositeTransformResult<FirStatement> {
|
||||||
|
|||||||
Reference in New Issue
Block a user