AA FIR: handle smartcasted arg when building call's argument mapping

^KTIJ-25112 Fixed
This commit is contained in:
Jinseong Jeon
2023-04-06 23:52:28 -07:00
committed by Ilya Kirillov
parent 86540bdbb4
commit fbe558a0de
8 changed files with 112 additions and 0 deletions
@@ -0,0 +1,10 @@
open class A
class B : A()
private fun processB(b: B): Int = 2
fun test(a: A) {
if (a is B) {
<expr>processB(a)</expr>
}
}
@@ -0,0 +1,28 @@
KtSuccessCallInfo:
call = KtSimpleFunctionCall:
isImplicitInvoke = false
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
dispatchReceiver = null
extensionReceiver = null
signature = KtFunctionLikeSignature:
receiverType = null
returnType = kotlin.Int
symbol = /processB(b: B): kotlin.Int
valueParameters = [
KtVariableLikeSignature:
name = b
receiverType = null
returnType = B
symbol = b: B
callableIdIfNonLocal = null
]
callableIdIfNonLocal = /processB
typeArgumentsMapping = {}
argumentMapping = {
a -> (KtVariableLikeSignature:
name = b
receiverType = null
returnType = B
symbol = b: B
callableIdIfNonLocal = null)
}
@@ -0,0 +1,8 @@
private fun test(s: String?) {
if (s != null) {
<expr>foo(s)</expr>
}
}
private fun foo(s: String) {
}
@@ -0,0 +1,28 @@
KtSuccessCallInfo:
call = KtSimpleFunctionCall:
isImplicitInvoke = false
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
dispatchReceiver = null
extensionReceiver = null
signature = KtFunctionLikeSignature:
receiverType = null
returnType = kotlin.Unit
symbol = /foo(s: kotlin.String): kotlin.Unit
valueParameters = [
KtVariableLikeSignature:
name = s
receiverType = null
returnType = kotlin.String
symbol = s: kotlin.String
callableIdIfNonLocal = null
]
callableIdIfNonLocal = /foo
typeArgumentsMapping = {}
argumentMapping = {
s -> (KtVariableLikeSignature:
name = s
receiverType = null
returnType = kotlin.String
symbol = s: kotlin.String
callableIdIfNonLocal = null)
}