FIR: unwrap smartcast expression when extracting effects of contract

This commit is contained in:
Jinseong Jeon
2021-02-11 01:00:36 -08:00
committed by TeamCityServer
parent 70f462781a
commit 3d635b6a94
8 changed files with 89 additions and 76 deletions
@@ -11,6 +11,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(NOT_NULL) -> x is kotlin/String && x != null
>
{
[StubStatement]
@@ -46,6 +47,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test6(x: R|kotlin/Any?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(TRUE) -> x is kotlin/String? && x != null
>
{
[StubStatement]
@@ -54,6 +56,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test7(x: R|kotlin/Any?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(TRUE) -> x is kotlin/String? && x != null || x is kotlin/Int
>
{
[StubStatement]
@@ -95,6 +98,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test11(x: R|kotlin/Any?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(TRUE) -> x is kotlin/Comparable<*> && x is kotlin/CharSequence
>
{
[StubStatement]
@@ -103,6 +107,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test12(x: R|kotlin/Any?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(TRUE) -> x is kotlin/Comparable<*> && x is kotlin/CharSequence || x is kotlin/Number
>
{
[StubStatement]
@@ -111,6 +116,7 @@ FILE: conditionLogic.kt
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test13(x: R|kotlin/Any?|): R|kotlin/Any?|
[R|Contract description]
<
Returns(TRUE) -> (!)x !is kotlin/Comparable<*> || x !is kotlin/CharSequence && (!x is kotlin/Number)
>
{
[StubStatement]