| // RUN_PIPELINE_TILL: FRONTEND | |
| class ExcA : Exception() | |
| class ExcB : Exception() | |
| fun test0(x: Int?) { | |
| val y = try { | |
| x | |
| } finally { | |
| } | |
| if (x != null) { | |
| x.inc() | |
| y<!UNSAFE_CALL!>.<!>inc() | |
| } | |
| if (y != null) { | |
| x<!UNSAFE_CALL!>.<!>inc() | |
| y.inc() | |
| } | |
| } | |
| fun test1(x: Int?) { | |
| val y = try { | |
| x | |
| } | |
| catch (e: Exception) { | |
| 42 | |
| } | |
| if (x != null) { | |
| x.inc() | |
| y<!UNSAFE_CALL!>.<!>inc() | |
| } | |
| if (y != null) { | |
| x<!UNSAFE_CALL!>.<!>inc() | |
| y.inc() | |
| } | |
| } | |
| fun test2(x: Int?) { | |
| val y = try { | |
| x | |
| } | |
| catch (e: Exception) { | |
| x | |
| } | |
| if (x != null) { | |
| x.inc() | |
| y<!UNSAFE_CALL!>.<!>inc() | |
| } | |
| if (y != null) { | |
| x<!UNSAFE_CALL!>.<!>inc() | |
| y.inc() | |
| } | |
| } | |
| fun test3(x: Int?) { | |
| val y = try { | |
| x | |
| } catch (e: Exception) { | |
| return | |
| } | |
| if (x != null) { | |
| x.inc() | |
| y<!UNSAFE_CALL!>.<!>inc() | |
| } | |
| if (y != null) { | |
| x<!UNSAFE_CALL!>.<!>inc() | |
| y.inc() | |
| } | |
| } | |
| fun test5(x: Int?) { | |
| val y = try { | |
| x | |
| } | |
| catch (e: ExcA) { | |
| return | |
| } | |
| catch (e: ExcB) { | |
| x | |
| } | |
| if (x != null) { | |
| x.inc() | |
| y<!UNSAFE_CALL!>.<!>inc() | |
| } | |
| if (y != null) { | |
| x<!UNSAFE_CALL!>.<!>inc() | |
| y.inc() | |
| } | |
| } | |
| /* GENERATED_FIR_TAGS: classDeclaration, equalityExpression, functionDeclaration, ifExpression, integerLiteral, | |
| localProperty, nullableType, propertyDeclaration, smartcast, tryExpression */ |