FIR. Refactor smart-cast representation in FIR tree

Make smart-casts non-transparent expression without delegation
to underlying FirQualifiedAccessExpression, as children delegation in
fir tree has unclear semantics
Remove two different kinds of tree nodes for smart-casts
This commit is contained in:
Simon Ogorodnik
2022-08-02 00:49:24 +02:00
committed by teamcity
parent bc9db58b3c
commit 513af2dfbc
154 changed files with 9573 additions and 9320 deletions
@@ -0,0 +1,7 @@
fun test(obj: Any): String {
return when {
obj !is Iterable<*> -> "not iterable"
<expr>obj</expr> !is Collection<*> -> "not collection"
else -> "unknown"
}
}
@@ -0,0 +1,14 @@
KtSuccessCallInfo:
call = KtSimpleVariableAccessCall:
partiallyAppliedSymbol = KtPartiallyAppliedSymbol:
dispatchReceiver = null
extensionReceiver = null
signature = KtVariableLikeSignature:
name = obj
receiverType = null
returnType = kotlin.Any
symbol = obj: kotlin.Any
callableIdIfNonLocal = null
simpleAccess = Read:
typeArgumentsMapping = {}