AA FIR: handle smartcasted arg when building call's argument mapping
^KTIJ-25112 Fixed
This commit is contained in:
committed by
Ilya Kirillov
parent
86540bdbb4
commit
fbe558a0de
+10
@@ -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>
|
||||
}
|
||||
}
|
||||
+28
@@ -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)
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
private fun test(s: String?) {
|
||||
if (s != null) {
|
||||
<expr>foo(s)</expr>
|
||||
}
|
||||
}
|
||||
|
||||
private fun foo(s: String) {
|
||||
}
|
||||
Vendored
+28
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user