[FIR] Fix clearing info about DF variable after reassignment

This commit is contained in:
Dmitriy Novozhilov
2021-03-04 11:50:56 +03:00
parent f8adce8b96
commit a6d1d47918
19 changed files with 181 additions and 15 deletions
@@ -0,0 +1,19 @@
FILE: complexIfWithOr.kt
public abstract interface State : R|kotlin/Any| {
}
public abstract interface Complex : R|kotlin/Any| {
public abstract val superClass: R|Complex?|
public get(): R|Complex?|
}
public abstract interface ExceptionState : R|State| {
}
public final fun test(qualifier: R|State?|): R|kotlin/Unit| {
when () {
==(R|<local>/qualifier|, Null(null)) || (R|<local>/qualifier| is R|ExceptionState|) || ==((R|<local>/qualifier| as? R|Complex|)?.{ $subj$.R|/Complex.superClass| }, Null(null)) -> {
^test Unit
}
}
R|<local>/qualifier|.R|/Complex.superClass|
}
@@ -0,0 +1,13 @@
interface State
interface Complex {
val superClass: Complex?
}
interface ExceptionState : State
fun test(qualifier: State?) {
if (qualifier == null || qualifier is ExceptionState || (qualifier as? Complex)?.superClass == null) {
return
}
qualifier.superClass
}