FIR: add UnsafeCall resolution diagnostics
Previously unsafe call is reported as part of InapplicableWrongReceiver. This makes it difficult for the downstream checkers to report different diagnostics.
This commit is contained in:
committed by
Mikhail Glukhikh
parent
43a2ad0467
commit
6a03f31e50
@@ -127,7 +127,7 @@ digraph jumps_kt {
|
|||||||
}
|
}
|
||||||
51 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
51 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||||
52 [label="Access variable R|<local>/y|"];
|
52 [label="Access variable R|<local>/y|"];
|
||||||
53 [label="Function call: R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
53 [label="Function call: R|<local>/y|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
54 [label="Exit block"];
|
54 [label="Exit block"];
|
||||||
}
|
}
|
||||||
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ FILE: jumps.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
public final fun test_3(x: R|kotlin/Int?|): R|kotlin/Unit| {
|
public final fun test_3(x: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||||
while(Boolean(true)) {
|
while(Boolean(true)) {
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ FILE: test.kt
|
|||||||
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/bar|, Null(null)) -> {
|
!=(R|<local>/bar|, Null(null)) -> {
|
||||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/CharSequence.length>#
|
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(UNSAFE_CALL): kotlin/CharSequence.length>#
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ digraph bangbang_kt {
|
|||||||
78 [label="Exit when"];
|
78 [label="Exit when"];
|
||||||
}
|
}
|
||||||
79 [label="Access variable R|<local>/a|"];
|
79 [label="Access variable R|<local>/a|"];
|
||||||
80 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
80 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
81 [label="Exit block"];
|
81 [label="Exit block"];
|
||||||
}
|
}
|
||||||
82 [label="Exit function test_3" style="filled" fillcolor=red];
|
82 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
@@ -331,14 +331,14 @@ digraph bangbang_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
123 [label="Enter block"];
|
123 [label="Enter block"];
|
||||||
124 [label="Access variable R|<local>/a|"];
|
124 [label="Access variable R|<local>/a|"];
|
||||||
125 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
125 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
126 [label="Exit block"];
|
126 [label="Exit block"];
|
||||||
}
|
}
|
||||||
127 [label="Exit when branch result"];
|
127 [label="Exit when branch result"];
|
||||||
128 [label="Exit when"];
|
128 [label="Exit when"];
|
||||||
}
|
}
|
||||||
129 [label="Access variable R|<local>/a|"];
|
129 [label="Access variable R|<local>/a|"];
|
||||||
130 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
130 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
131 [label="Exit block"];
|
131 [label="Exit block"];
|
||||||
}
|
}
|
||||||
132 [label="Exit function test_5" style="filled" fillcolor=red];
|
132 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ FILE: bangbang.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_4(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
public final fun test_4(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
@@ -46,11 +46,11 @@ FILE: bangbang.kt
|
|||||||
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
|
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun <X : R|A?|> test_6(x: R|X|): R|kotlin/Unit| {
|
public final fun <X : R|A?|> test_6(x: R|X|): R|kotlin/Unit| {
|
||||||
R|<local>/x|!!.R|/A.foo|()
|
R|<local>/x|!!.R|/A.foo|()
|
||||||
|
|||||||
Vendored
+2
-2
@@ -17,7 +17,7 @@ FILE: booleanElvisBoundSmartcast.kt
|
|||||||
R|<local>/a|.R|/A.foo|()
|
R|<local>/a|.R|/A.foo|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ FILE: booleanElvisBoundSmartcast.kt
|
|||||||
public final fun test_2(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_2(a: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
R|<local>/a|?.{ $subj$.R|/A.b| } ?: Boolean(true) -> {
|
R|<local>/a|?.{ $subj$.R|/A.b| } ?: Boolean(true) -> {
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/a|.R|/A.foo|()
|
R|<local>/a|.R|/A.foo|()
|
||||||
|
|||||||
+8
-8
@@ -46,7 +46,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
17 [label="Enter block"];
|
17 [label="Enter block"];
|
||||||
18 [label="Access variable R|<local>/b|"];
|
18 [label="Access variable R|<local>/b|"];
|
||||||
19 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
19 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
20 [label="Exit block"];
|
20 [label="Exit block"];
|
||||||
}
|
}
|
||||||
21 [label="Exit when branch result"];
|
21 [label="Exit when branch result"];
|
||||||
@@ -130,7 +130,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter block"];
|
50 [label="Enter block"];
|
||||||
51 [label="Access variable R|<local>/b|"];
|
51 [label="Access variable R|<local>/b|"];
|
||||||
52 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
52 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
53 [label="Exit block"];
|
53 [label="Exit block"];
|
||||||
}
|
}
|
||||||
54 [label="Exit when branch result"];
|
54 [label="Exit when branch result"];
|
||||||
@@ -205,7 +205,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
77 [label="Enter block"];
|
77 [label="Enter block"];
|
||||||
78 [label="Access variable R|<local>/b|"];
|
78 [label="Access variable R|<local>/b|"];
|
||||||
79 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
79 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
80 [label="Exit block"];
|
80 [label="Exit block"];
|
||||||
}
|
}
|
||||||
81 [label="Exit when branch result"];
|
81 [label="Exit when branch result"];
|
||||||
@@ -271,7 +271,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
98 [label="Enter block"];
|
98 [label="Enter block"];
|
||||||
99 [label="Access variable R|<local>/b|"];
|
99 [label="Access variable R|<local>/b|"];
|
||||||
100 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
100 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
101 [label="Exit block"];
|
101 [label="Exit block"];
|
||||||
}
|
}
|
||||||
102 [label="Exit when branch result"];
|
102 [label="Exit when branch result"];
|
||||||
@@ -355,7 +355,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
131 [label="Enter block"];
|
131 [label="Enter block"];
|
||||||
132 [label="Access variable R|<local>/b|"];
|
132 [label="Access variable R|<local>/b|"];
|
||||||
133 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
133 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
134 [label="Exit block"];
|
134 [label="Exit block"];
|
||||||
}
|
}
|
||||||
135 [label="Exit when branch result"];
|
135 [label="Exit when branch result"];
|
||||||
@@ -421,7 +421,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
152 [label="Enter block"];
|
152 [label="Enter block"];
|
||||||
153 [label="Access variable R|<local>/b|"];
|
153 [label="Access variable R|<local>/b|"];
|
||||||
154 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
154 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
155 [label="Exit block"];
|
155 [label="Exit block"];
|
||||||
}
|
}
|
||||||
156 [label="Exit when branch result"];
|
156 [label="Exit when branch result"];
|
||||||
@@ -496,7 +496,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
179 [label="Enter block"];
|
179 [label="Enter block"];
|
||||||
180 [label="Access variable R|<local>/b|"];
|
180 [label="Access variable R|<local>/b|"];
|
||||||
181 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
181 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
182 [label="Exit block"];
|
182 [label="Exit block"];
|
||||||
}
|
}
|
||||||
183 [label="Exit when branch result"];
|
183 [label="Exit when branch result"];
|
||||||
@@ -580,7 +580,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
212 [label="Enter block"];
|
212 [label="Enter block"];
|
||||||
213 [label="Access variable R|<local>/b|"];
|
213 [label="Access variable R|<local>/b|"];
|
||||||
214 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()"];
|
214 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()"];
|
||||||
215 [label="Exit block"];
|
215 [label="Exit block"];
|
||||||
}
|
}
|
||||||
216 [label="Exit when branch result"];
|
216 [label="Exit when branch result"];
|
||||||
|
|||||||
+8
-8
@@ -12,7 +12,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ FILE: equalsToBoolean.kt
|
|||||||
public final fun test_2(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
public final fun test_2(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -31,7 +31,7 @@ FILE: equalsToBoolean.kt
|
|||||||
public final fun test_3(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
public final fun test_3(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -45,7 +45,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ FILE: equalsToBoolean.kt
|
|||||||
public final fun test_5(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
public final fun test_5(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -67,7 +67,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ FILE: equalsToBoolean.kt
|
|||||||
public final fun test_8(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
public final fun test_8(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
|
|||||||
+6
-6
@@ -267,7 +267,7 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
101 [label="Exit ||"];
|
101 [label="Exit ||"];
|
||||||
}
|
}
|
||||||
102 [label="Access variable R|<local>/a|"];
|
102 [label="Access variable R|<local>/a|"];
|
||||||
103 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
103 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
104 [label="Exit block"];
|
104 [label="Exit block"];
|
||||||
}
|
}
|
||||||
105 [label="Exit function test_5" style="filled" fillcolor=red];
|
105 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
@@ -309,7 +309,7 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
117 [label="Exit &&"];
|
117 [label="Exit &&"];
|
||||||
}
|
}
|
||||||
118 [label="Access variable R|<local>/a|"];
|
118 [label="Access variable R|<local>/a|"];
|
||||||
119 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
119 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
120 [label="Exit block"];
|
120 [label="Exit block"];
|
||||||
}
|
}
|
||||||
121 [label="Exit function teat_6" style="filled" fillcolor=red];
|
121 [label="Exit function teat_6" style="filled" fillcolor=red];
|
||||||
@@ -364,14 +364,14 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
139 [label="Enter block"];
|
139 [label="Enter block"];
|
||||||
140 [label="Access variable R|<local>/a|"];
|
140 [label="Access variable R|<local>/a|"];
|
||||||
141 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
141 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
142 [label="Exit block"];
|
142 [label="Exit block"];
|
||||||
}
|
}
|
||||||
143 [label="Exit when branch result"];
|
143 [label="Exit when branch result"];
|
||||||
144 [label="Exit when"];
|
144 [label="Exit when"];
|
||||||
}
|
}
|
||||||
145 [label="Access variable R|<local>/a|"];
|
145 [label="Access variable R|<local>/a|"];
|
||||||
146 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
146 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
147 [label="Exit block"];
|
147 [label="Exit block"];
|
||||||
}
|
}
|
||||||
148 [label="Exit function test_7" style="filled" fillcolor=red];
|
148 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
@@ -437,14 +437,14 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
166 [label="Enter block"];
|
166 [label="Enter block"];
|
||||||
167 [label="Access variable R|<local>/a|"];
|
167 [label="Access variable R|<local>/a|"];
|
||||||
168 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
168 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
169 [label="Exit block"];
|
169 [label="Exit block"];
|
||||||
}
|
}
|
||||||
170 [label="Exit when branch result"];
|
170 [label="Exit when branch result"];
|
||||||
171 [label="Exit when"];
|
171 [label="Exit when"];
|
||||||
}
|
}
|
||||||
172 [label="Access variable R|<local>/a|"];
|
172 [label="Access variable R|<local>/a|"];
|
||||||
173 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
173 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
174 [label="Exit block"];
|
174 [label="Exit block"];
|
||||||
}
|
}
|
||||||
175 [label="Exit function test_8" style="filled" fillcolor=red];
|
175 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
|
|||||||
Vendored
+6
-6
@@ -31,27 +31,27 @@ FILE: jumpFromRhsOfOperator.kt
|
|||||||
}
|
}
|
||||||
public final fun test_5(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_5(a: R|A?|): R|kotlin/Unit| {
|
||||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|()
|
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|()
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun teat_6(a: R|A?|): R|kotlin/Unit| {
|
public final fun teat_6(a: R|A?|): R|kotlin/Unit| {
|
||||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|()
|
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|()
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
|
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_8(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_8(a: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
|
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -675,7 +675,7 @@ digraph boundSmartcastsInBranches_kt {
|
|||||||
275 [label="Access variable R|<local>/x|"];
|
275 [label="Access variable R|<local>/x|"];
|
||||||
276 [label="Access variable R|kotlin/String.length|"];
|
276 [label="Access variable R|kotlin/String.length|"];
|
||||||
277 [label="Access variable R|<local>/y|"];
|
277 [label="Access variable R|<local>/y|"];
|
||||||
278 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
278 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
279 [label="Access variable R|<local>/z|"];
|
279 [label="Access variable R|<local>/z|"];
|
||||||
280 [label="Access variable R|kotlin/String.length|"];
|
280 [label="Access variable R|kotlin/String.length|"];
|
||||||
281 [label="Exit block"];
|
281 [label="Exit block"];
|
||||||
@@ -700,11 +700,11 @@ digraph boundSmartcastsInBranches_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
292 [label="Enter block"];
|
292 [label="Enter block"];
|
||||||
293 [label="Access variable R|<local>/x|"];
|
293 [label="Access variable R|<local>/x|"];
|
||||||
294 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
294 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
295 [label="Access variable R|<local>/y|"];
|
295 [label="Access variable R|<local>/y|"];
|
||||||
296 [label="Access variable R|kotlin/String.length|"];
|
296 [label="Access variable R|kotlin/String.length|"];
|
||||||
297 [label="Access variable R|<local>/z|"];
|
297 [label="Access variable R|<local>/z|"];
|
||||||
298 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
298 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
299 [label="Exit block"];
|
299 [label="Exit block"];
|
||||||
}
|
}
|
||||||
300 [label="Exit when branch result"];
|
300 [label="Exit when branch result"];
|
||||||
@@ -729,7 +729,7 @@ digraph boundSmartcastsInBranches_kt {
|
|||||||
311 [label="Access variable R|<local>/x|"];
|
311 [label="Access variable R|<local>/x|"];
|
||||||
312 [label="Access variable R|kotlin/String.length|"];
|
312 [label="Access variable R|kotlin/String.length|"];
|
||||||
313 [label="Access variable R|<local>/y|"];
|
313 [label="Access variable R|<local>/y|"];
|
||||||
314 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
314 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
315 [label="Access variable R|<local>/z|"];
|
315 [label="Access variable R|<local>/z|"];
|
||||||
316 [label="Access variable R|kotlin/String.length|"];
|
316 [label="Access variable R|kotlin/String.length|"];
|
||||||
317 [label="Exit block"];
|
317 [label="Exit block"];
|
||||||
|
|||||||
+4
-4
@@ -135,23 +135,23 @@ FILE: boundSmartcastsInBranches.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/x|, Null(null)) -> {
|
!=(R|<local>/x|, Null(null)) -> {
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
R|<local>/z|.R|kotlin/String.length|
|
R|<local>/z|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/y|, Null(null)) -> {
|
!=(R|<local>/y|, Null(null)) -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
R|<local>/y|.R|kotlin/String.length|
|
R|<local>/y|.R|kotlin/String.length|
|
||||||
R|<local>/z|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/z|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/z|, Null(null)) -> {
|
!=(R|<local>/z|, Null(null)) -> {
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
R|<local>/z|.R|kotlin/String.length|
|
R|<local>/z|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -136,9 +136,9 @@ digraph equalsAndIdentity_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter block"];
|
50 [label="Enter block"];
|
||||||
51 [label="Access variable R|<local>/x|"];
|
51 [label="Access variable R|<local>/x|"];
|
||||||
52 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
52 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
53 [label="Access variable R|<local>/y|"];
|
53 [label="Access variable R|<local>/y|"];
|
||||||
54 [label="Function call: R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
54 [label="Function call: R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
55 [label="Exit block"];
|
55 [label="Exit block"];
|
||||||
}
|
}
|
||||||
56 [label="Exit when branch result"];
|
56 [label="Exit when branch result"];
|
||||||
@@ -161,9 +161,9 @@ digraph equalsAndIdentity_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter block"];
|
66 [label="Enter block"];
|
||||||
67 [label="Access variable R|<local>/x|"];
|
67 [label="Access variable R|<local>/x|"];
|
||||||
68 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
68 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
69 [label="Access variable R|<local>/y|"];
|
69 [label="Access variable R|<local>/y|"];
|
||||||
70 [label="Function call: R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
70 [label="Function call: R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
71 [label="Exit block"];
|
71 [label="Exit block"];
|
||||||
}
|
}
|
||||||
72 [label="Exit when branch result"];
|
72 [label="Exit when branch result"];
|
||||||
|
|||||||
+4
-4
@@ -22,15 +22,15 @@ FILE: equalsAndIdentity.kt
|
|||||||
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/x|, R|<local>/y|) -> {
|
==(R|<local>/x|, R|<local>/y|) -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/x|, R|<local>/y|) -> {
|
===(R|<local>/x|, R|<local>/y|) -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/y|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
76 [label="Enter block"];
|
76 [label="Enter block"];
|
||||||
77 [label="Access variable R|<local>/x|"];
|
77 [label="Access variable R|<local>/x|"];
|
||||||
78 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
78 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
79 [label="Exit block"];
|
79 [label="Exit block"];
|
||||||
}
|
}
|
||||||
80 [label="Exit when branch result"];
|
80 [label="Exit when branch result"];
|
||||||
@@ -255,7 +255,7 @@ digraph nullability_kt {
|
|||||||
87 [label="Exit when"];
|
87 [label="Exit when"];
|
||||||
}
|
}
|
||||||
88 [label="Access variable R|<local>/x|"];
|
88 [label="Access variable R|<local>/x|"];
|
||||||
89 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
89 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
90 [label="Exit block"];
|
90 [label="Exit block"];
|
||||||
}
|
}
|
||||||
91 [label="Exit function test_1" style="filled" fillcolor=red];
|
91 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
@@ -323,14 +323,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
109 [label="Enter block"];
|
109 [label="Enter block"];
|
||||||
110 [label="Access variable R|<local>/x|"];
|
110 [label="Access variable R|<local>/x|"];
|
||||||
111 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
111 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
112 [label="Exit block"];
|
112 [label="Exit block"];
|
||||||
}
|
}
|
||||||
113 [label="Exit when branch result"];
|
113 [label="Exit when branch result"];
|
||||||
114 [label="Exit when"];
|
114 [label="Exit when"];
|
||||||
}
|
}
|
||||||
115 [label="Access variable R|<local>/x|"];
|
115 [label="Access variable R|<local>/x|"];
|
||||||
116 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
116 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
117 [label="Exit block"];
|
117 [label="Exit block"];
|
||||||
}
|
}
|
||||||
118 [label="Exit function test_2" style="filled" fillcolor=red];
|
118 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
@@ -492,11 +492,11 @@ digraph nullability_kt {
|
|||||||
176 [label="Access variable R|/Q.data|"];
|
176 [label="Access variable R|/Q.data|"];
|
||||||
177 [label="Access variable R|<local>/q|"];
|
177 [label="Access variable R|<local>/q|"];
|
||||||
178 [label="Access variable R|/Q.data|"];
|
178 [label="Access variable R|/Q.data|"];
|
||||||
179 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
179 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
180 [label="Access variable R|<local>/q|"];
|
180 [label="Access variable R|<local>/q|"];
|
||||||
181 [label="Access variable R|/Q.data|"];
|
181 [label="Access variable R|/Q.data|"];
|
||||||
182 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
182 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
183 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
183 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
184 [label="Exit block"];
|
184 [label="Exit block"];
|
||||||
}
|
}
|
||||||
185 [label="Exit when branch result"];
|
185 [label="Exit when branch result"];
|
||||||
@@ -566,11 +566,11 @@ digraph nullability_kt {
|
|||||||
208 [label="Access variable R|/Q.data|"];
|
208 [label="Access variable R|/Q.data|"];
|
||||||
209 [label="Access variable R|<local>/q|"];
|
209 [label="Access variable R|<local>/q|"];
|
||||||
210 [label="Access variable R|/Q.data|"];
|
210 [label="Access variable R|/Q.data|"];
|
||||||
211 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
211 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
212 [label="Access variable R|<local>/q|"];
|
212 [label="Access variable R|<local>/q|"];
|
||||||
213 [label="Access variable R|/Q.data|"];
|
213 [label="Access variable R|/Q.data|"];
|
||||||
214 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
214 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
215 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
215 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
216 [label="Exit block"];
|
216 [label="Exit block"];
|
||||||
}
|
}
|
||||||
217 [label="Exit function test_6" style="filled" fillcolor=red];
|
217 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||||
@@ -640,11 +640,11 @@ digraph nullability_kt {
|
|||||||
239 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
239 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||||
240 [label="Access variable R|<local>/q|"];
|
240 [label="Access variable R|<local>/q|"];
|
||||||
241 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
241 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||||
242 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()"];
|
242 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(UNSAFE_CALL): /MyData.fs>#()"];
|
||||||
243 [label="Access variable R|<local>/q|"];
|
243 [label="Access variable R|<local>/q|"];
|
||||||
244 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
244 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||||
245 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()"];
|
245 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(UNSAFE_CALL): /MyData.fs>#()"];
|
||||||
246 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
246 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(UNSAFE_CALL): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
||||||
247 [label="Exit block"];
|
247 [label="Exit block"];
|
||||||
}
|
}
|
||||||
248 [label="Exit when branch result"];
|
248 [label="Exit when branch result"];
|
||||||
@@ -769,7 +769,7 @@ digraph nullability_kt {
|
|||||||
285 [label="Exit when"];
|
285 [label="Exit when"];
|
||||||
}
|
}
|
||||||
286 [label="Access variable R|<local>/b|"];
|
286 [label="Access variable R|<local>/b|"];
|
||||||
287 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
287 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_66 {
|
subgraph cluster_66 {
|
||||||
color=blue
|
color=blue
|
||||||
288 [label="Enter when"];
|
288 [label="Enter when"];
|
||||||
@@ -794,7 +794,7 @@ digraph nullability_kt {
|
|||||||
301 [label="Exit when"];
|
301 [label="Exit when"];
|
||||||
}
|
}
|
||||||
302 [label="Access variable R|<local>/b|"];
|
302 [label="Access variable R|<local>/b|"];
|
||||||
303 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
303 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_69 {
|
subgraph cluster_69 {
|
||||||
color=blue
|
color=blue
|
||||||
304 [label="Enter when"];
|
304 [label="Enter when"];
|
||||||
@@ -819,7 +819,7 @@ digraph nullability_kt {
|
|||||||
317 [label="Exit when"];
|
317 [label="Exit when"];
|
||||||
}
|
}
|
||||||
318 [label="Access variable R|<local>/b|"];
|
318 [label="Access variable R|<local>/b|"];
|
||||||
319 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
319 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_72 {
|
subgraph cluster_72 {
|
||||||
color=blue
|
color=blue
|
||||||
320 [label="Enter when"];
|
320 [label="Enter when"];
|
||||||
@@ -844,7 +844,7 @@ digraph nullability_kt {
|
|||||||
333 [label="Exit when"];
|
333 [label="Exit when"];
|
||||||
}
|
}
|
||||||
334 [label="Access variable R|<local>/b|"];
|
334 [label="Access variable R|<local>/b|"];
|
||||||
335 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
335 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
336 [label="Exit block"];
|
336 [label="Exit block"];
|
||||||
}
|
}
|
||||||
337 [label="Exit function test_9" style="filled" fillcolor=red];
|
337 [label="Exit function test_9" style="filled" fillcolor=red];
|
||||||
@@ -940,14 +940,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
348 [label="Enter block"];
|
348 [label="Enter block"];
|
||||||
349 [label="Access variable R|<local>/b|"];
|
349 [label="Access variable R|<local>/b|"];
|
||||||
350 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
350 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
351 [label="Exit block"];
|
351 [label="Exit block"];
|
||||||
}
|
}
|
||||||
352 [label="Exit when branch result"];
|
352 [label="Exit when branch result"];
|
||||||
353 [label="Exit when"];
|
353 [label="Exit when"];
|
||||||
}
|
}
|
||||||
354 [label="Access variable R|<local>/b|"];
|
354 [label="Access variable R|<local>/b|"];
|
||||||
355 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
355 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_80 {
|
subgraph cluster_80 {
|
||||||
color=blue
|
color=blue
|
||||||
356 [label="Enter when"];
|
356 [label="Enter when"];
|
||||||
@@ -965,14 +965,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
364 [label="Enter block"];
|
364 [label="Enter block"];
|
||||||
365 [label="Access variable R|<local>/b|"];
|
365 [label="Access variable R|<local>/b|"];
|
||||||
366 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
366 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
367 [label="Exit block"];
|
367 [label="Exit block"];
|
||||||
}
|
}
|
||||||
368 [label="Exit when branch result"];
|
368 [label="Exit when branch result"];
|
||||||
369 [label="Exit when"];
|
369 [label="Exit when"];
|
||||||
}
|
}
|
||||||
370 [label="Access variable R|<local>/b|"];
|
370 [label="Access variable R|<local>/b|"];
|
||||||
371 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
371 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_83 {
|
subgraph cluster_83 {
|
||||||
color=blue
|
color=blue
|
||||||
372 [label="Enter when"];
|
372 [label="Enter when"];
|
||||||
@@ -990,14 +990,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
380 [label="Enter block"];
|
380 [label="Enter block"];
|
||||||
381 [label="Access variable R|<local>/b|"];
|
381 [label="Access variable R|<local>/b|"];
|
||||||
382 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
382 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
383 [label="Exit block"];
|
383 [label="Exit block"];
|
||||||
}
|
}
|
||||||
384 [label="Exit when branch result"];
|
384 [label="Exit when branch result"];
|
||||||
385 [label="Exit when"];
|
385 [label="Exit when"];
|
||||||
}
|
}
|
||||||
386 [label="Access variable R|<local>/b|"];
|
386 [label="Access variable R|<local>/b|"];
|
||||||
387 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
387 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
subgraph cluster_86 {
|
subgraph cluster_86 {
|
||||||
color=blue
|
color=blue
|
||||||
388 [label="Enter when"];
|
388 [label="Enter when"];
|
||||||
@@ -1015,14 +1015,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
396 [label="Enter block"];
|
396 [label="Enter block"];
|
||||||
397 [label="Access variable R|<local>/b|"];
|
397 [label="Access variable R|<local>/b|"];
|
||||||
398 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
398 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
399 [label="Exit block"];
|
399 [label="Exit block"];
|
||||||
}
|
}
|
||||||
400 [label="Exit when branch result"];
|
400 [label="Exit when branch result"];
|
||||||
401 [label="Exit when"];
|
401 [label="Exit when"];
|
||||||
}
|
}
|
||||||
402 [label="Access variable R|<local>/b|"];
|
402 [label="Access variable R|<local>/b|"];
|
||||||
403 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
403 [label="Function call: R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()"];
|
||||||
404 [label="Exit block"];
|
404 [label="Exit block"];
|
||||||
}
|
}
|
||||||
405 [label="Exit function test_10" style="filled" fillcolor=red];
|
405 [label="Exit function test_10" style="filled" fillcolor=red];
|
||||||
@@ -1139,11 +1139,11 @@ digraph nullability_kt {
|
|||||||
436 [label="Access variable R|/QImpl.data|"];
|
436 [label="Access variable R|/QImpl.data|"];
|
||||||
437 [label="Access variable R|<local>/q2|"];
|
437 [label="Access variable R|<local>/q2|"];
|
||||||
438 [label="Access variable R|/QImpl.data|"];
|
438 [label="Access variable R|/QImpl.data|"];
|
||||||
439 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
439 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
440 [label="Access variable R|<local>/q2|"];
|
440 [label="Access variable R|<local>/q2|"];
|
||||||
441 [label="Access variable R|/QImpl.data|"];
|
441 [label="Access variable R|/QImpl.data|"];
|
||||||
442 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
442 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
443 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
443 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
subgraph cluster_94 {
|
subgraph cluster_94 {
|
||||||
color=blue
|
color=blue
|
||||||
444 [label="Enter when"];
|
444 [label="Enter when"];
|
||||||
@@ -1280,11 +1280,11 @@ digraph nullability_kt {
|
|||||||
490 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
490 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||||
491 [label="Access variable R|<local>/q|"];
|
491 [label="Access variable R|<local>/q|"];
|
||||||
492 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
492 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||||
493 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
493 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
494 [label="Access variable R|<local>/q|"];
|
494 [label="Access variable R|<local>/q|"];
|
||||||
495 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
495 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||||
496 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
496 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
497 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
497 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
498 [label="Exit block"];
|
498 [label="Exit block"];
|
||||||
}
|
}
|
||||||
499 [label="Exit when branch result"];
|
499 [label="Exit when branch result"];
|
||||||
@@ -1363,11 +1363,11 @@ digraph nullability_kt {
|
|||||||
524 [label="Access variable R|/QImplMutable.data|"];
|
524 [label="Access variable R|/QImplMutable.data|"];
|
||||||
525 [label="Access variable R|<local>/q|"];
|
525 [label="Access variable R|<local>/q|"];
|
||||||
526 [label="Access variable R|/QImplMutable.data|"];
|
526 [label="Access variable R|/QImplMutable.data|"];
|
||||||
527 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
527 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
528 [label="Access variable R|<local>/q|"];
|
528 [label="Access variable R|<local>/q|"];
|
||||||
529 [label="Access variable R|/QImplMutable.data|"];
|
529 [label="Access variable R|/QImplMutable.data|"];
|
||||||
530 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
530 [label="Access variable <Inapplicable(UNSAFE_CALL): /MyData.s>#"];
|
||||||
531 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
531 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
532 [label="Exit block"];
|
532 [label="Exit block"];
|
||||||
}
|
}
|
||||||
533 [label="Exit when branch result"];
|
533 [label="Exit when branch result"];
|
||||||
|
|||||||
+28
-28
@@ -67,23 +67,23 @@ FILE: nullability.kt
|
|||||||
R|<local>/x|.R|/A.foo|()
|
R|<local>/x|.R|/A.foo|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_2(x: R|A?|): R|kotlin/Unit| {
|
public final fun test_2(x: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/x|, Null(null)) -> {
|
==(R|<local>/x|, Null(null)) -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.R|/A.foo|()
|
R|<local>/x|.R|/A.foo|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_3(x: R|A?|): R|kotlin/Unit| {
|
public final fun test_3(x: R|A?|): R|kotlin/Unit| {
|
||||||
R|<local>/x| ?: ^test_3 Unit
|
R|<local>/x| ?: ^test_3 Unit
|
||||||
@@ -102,8 +102,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/Q.data|
|
R|<local>/q|.R|/Q.data|
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,15 +111,15 @@ FILE: nullability.kt
|
|||||||
public final fun test_6(q: R|Q?|): R|kotlin/Unit| {
|
public final fun test_6(q: R|Q?|): R|kotlin/Unit| {
|
||||||
R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() } ?: ^test_6 Unit
|
R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() } ?: ^test_6 Unit
|
||||||
R|<local>/q|.R|/Q.data|
|
R|<local>/q|.R|/Q.data|
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/Q.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
|
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/Q.fdata|() }?.{ $subj$.R|/MyData.fs|() }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/Q.fdata|() }?.{ $subj$.R|/MyData.fs|() }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/Q.fdata|()
|
R|<local>/q|.R|/Q.fdata|()
|
||||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()
|
R|<local>/q|.R|/Q.fdata|().<Inapplicable(UNSAFE_CALL): /MyData.fs>#()
|
||||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()
|
R|<local>/q|.R|/Q.fdata|().<Inapplicable(UNSAFE_CALL): /MyData.fs>#().R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -139,58 +139,58 @@ FILE: nullability.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/a|, R|<local>/b|) -> {
|
===(R|<local>/a|, R|<local>/b|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/b|, R|<local>/a|) -> {
|
==(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/b|, R|<local>/a|) -> {
|
===(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
public final fun test_10(a: R|kotlin/Int?|, b: R|kotlin/Int?|): R|kotlin/Unit| {
|
public final fun test_10(a: R|kotlin/Int?|, b: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/a|, R|<local>/b|) -> {
|
==(R|<local>/a|, R|<local>/b|) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/a|, R|<local>/b|) -> {
|
===(R|<local>/a|, R|<local>/b|) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/b|, R|<local>/a|) -> {
|
==(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/b|, R|<local>/a|) -> {
|
===(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(UNSAFE_CALL): kotlin/Int.inc>#()
|
||||||
}
|
}
|
||||||
public final fun test_11(q: R|QImpl?|, q2: R|QImpl|): R|kotlin/Unit| {
|
public final fun test_11(q: R|QImpl?|, q2: R|QImpl|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
@@ -199,8 +199,8 @@ FILE: nullability.kt
|
|||||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|
|
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|
|
||||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|.R|kotlin/Int.inc|()
|
||||||
R|<local>/q2|.R|/QImpl.data|
|
R|<local>/q2|.R|/QImpl.data|
|
||||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#
|
||||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
|
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
|
||||||
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
|
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
|
||||||
@@ -216,8 +216,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/QImplWithCustomGetter.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/QImplWithCustomGetter.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/QImplWithCustomGetter.data|
|
R|<local>/q|.R|/QImplWithCustomGetter.data|
|
||||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#
|
||||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,8 +226,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/QImplMutable.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/QImplMutable.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/QImplMutable.data|
|
R|<local>/q|.R|/QImplMutable.data|
|
||||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#
|
||||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(UNSAFE_CALL): /MyData.s>#.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,6 @@ fun test_3(a: Any?, b: Boolean) {
|
|||||||
|
|
||||||
fun test_4(a: Any?, b: Boolean) {
|
fun test_4(a: Any?, b: Boolean) {
|
||||||
if (a is String || b) {
|
if (a is String || b) {
|
||||||
a<!UNSAFE_CALL!>.<!>foo() // Should be Bad
|
a.<!INAPPLICABLE_CANDIDATE!>foo<!>() // Should be Bad
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+4
-4
@@ -54,7 +54,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
21 [label="Enter block"];
|
21 [label="Enter block"];
|
||||||
22 [label="Access variable R|<local>/s|"];
|
22 [label="Access variable R|<local>/s|"];
|
||||||
23 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
23 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
24 [label="Exit block"];
|
24 [label="Exit block"];
|
||||||
}
|
}
|
||||||
25 [label="Exit when branch result"];
|
25 [label="Exit when branch result"];
|
||||||
@@ -131,7 +131,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter block"];
|
49 [label="Enter block"];
|
||||||
50 [label="Access variable R|<local>/s|"];
|
50 [label="Access variable R|<local>/s|"];
|
||||||
51 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
51 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
52 [label="Exit block"];
|
52 [label="Exit block"];
|
||||||
}
|
}
|
||||||
53 [label="Exit when branch result"];
|
53 [label="Exit when branch result"];
|
||||||
@@ -217,7 +217,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
83 [label="Enter block"];
|
83 [label="Enter block"];
|
||||||
84 [label="Access variable R|<local>/s|"];
|
84 [label="Access variable R|<local>/s|"];
|
||||||
85 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
85 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
86 [label="Exit block"];
|
86 [label="Exit block"];
|
||||||
}
|
}
|
||||||
87 [label="Exit when branch result"];
|
87 [label="Exit when branch result"];
|
||||||
@@ -294,7 +294,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
111 [label="Enter block"];
|
111 [label="Enter block"];
|
||||||
112 [label="Access variable R|<local>/s|"];
|
112 [label="Access variable R|<local>/s|"];
|
||||||
113 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
113 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
114 [label="Exit block"];
|
114 [label="Exit block"];
|
||||||
}
|
}
|
||||||
115 [label="Exit when branch result"];
|
115 [label="Exit when branch result"];
|
||||||
|
|||||||
Vendored
+4
-4
@@ -8,7 +8,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,7 +19,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
public final fun test_3(s: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test_3(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
|
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
|
||||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
@@ -38,7 +38,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
public final fun test_4(s: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test_4(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
|
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
|
||||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
|
|||||||
+3
-3
@@ -53,7 +53,7 @@ digraph safeCalls_kt {
|
|||||||
19 [label="Function call: $subj$.R|/foo|(...)"];
|
19 [label="Function call: $subj$.R|/foo|(...)"];
|
||||||
20 [label="Exit safe call"];
|
20 [label="Exit safe call"];
|
||||||
21 [label="Access variable R|<local>/x|"];
|
21 [label="Access variable R|<local>/x|"];
|
||||||
22 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
22 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
23 [label="Exit block"];
|
23 [label="Exit block"];
|
||||||
}
|
}
|
||||||
24 [label="Exit function test" style="filled" fillcolor=red];
|
24 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
@@ -208,7 +208,7 @@ digraph safeCalls_kt {
|
|||||||
78 [label="Function call: $subj$.R|/A.bool|()"];
|
78 [label="Function call: $subj$.R|/A.bool|()"];
|
||||||
79 [label="Exit safe call"];
|
79 [label="Exit safe call"];
|
||||||
80 [label="Access variable R|<local>/x|"];
|
80 [label="Access variable R|<local>/x|"];
|
||||||
81 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()"];
|
81 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()"];
|
||||||
82 [label="Exit block"];
|
82 [label="Exit block"];
|
||||||
}
|
}
|
||||||
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
@@ -272,7 +272,7 @@ digraph safeCalls_kt {
|
|||||||
101 [label="Function call: $subj$.R|/boo|(...)"];
|
101 [label="Function call: $subj$.R|/boo|(...)"];
|
||||||
102 [label="Exit safe call"];
|
102 [label="Exit safe call"];
|
||||||
103 [label="Access variable R|<local>/x|"];
|
103 [label="Access variable R|<local>/x|"];
|
||||||
104 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()"];
|
104 [label="Function call: R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()"];
|
||||||
105 [label="Exit block"];
|
105 [label="Exit block"];
|
||||||
}
|
}
|
||||||
106 [label="Exit function test_5" style="filled" fillcolor=red];
|
106 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
|||||||
+3
-3
@@ -6,7 +6,7 @@ FILE: safeCalls.kt
|
|||||||
}
|
}
|
||||||
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
public abstract interface A : R|kotlin/Any| {
|
public abstract interface A : R|kotlin/Any| {
|
||||||
public abstract fun bar(a: R|A|): R|kotlin/String|
|
public abstract fun bar(a: R|A|): R|kotlin/String|
|
||||||
@@ -28,7 +28,7 @@ FILE: safeCalls.kt
|
|||||||
}
|
}
|
||||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||||
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()
|
||||||
}
|
}
|
||||||
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
}
|
}
|
||||||
@@ -37,5 +37,5 @@ FILE: safeCalls.kt
|
|||||||
^test_5 Unit
|
^test_5 Unit
|
||||||
}
|
}
|
||||||
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /A.id>#()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -77,7 +77,7 @@ digraph delayedAssignment_kt {
|
|||||||
32 [label="Exit when"];
|
32 [label="Exit when"];
|
||||||
}
|
}
|
||||||
33 [label="Access variable R|<local>/a|"];
|
33 [label="Access variable R|<local>/a|"];
|
||||||
34 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
34 [label="Function call: R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()"];
|
||||||
35 [label="Exit block"];
|
35 [label="Exit block"];
|
||||||
}
|
}
|
||||||
36 [label="Exit function test" style="filled" fillcolor=red];
|
36 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
|||||||
Vendored
+1
-1
@@ -20,5 +20,5 @@ FILE: delayedAssignment.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(UNSAFE_CALL): /A.foo>#()
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -103,7 +103,7 @@ digraph smartcastAfterReassignment_kt {
|
|||||||
40 [label="Const: Null(null)"];
|
40 [label="Const: Null(null)"];
|
||||||
41 [label="Assignment: R|<local>/x|"];
|
41 [label="Assignment: R|<local>/x|"];
|
||||||
42 [label="Access variable R|<local>/x|"];
|
42 [label="Access variable R|<local>/x|"];
|
||||||
43 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
43 [label="Access variable <Inapplicable(UNSAFE_CALL): kotlin/String.length>#"];
|
||||||
44 [label="Exit block"];
|
44 [label="Exit block"];
|
||||||
}
|
}
|
||||||
45 [label="Exit function test_3" style="filled" fillcolor=red];
|
45 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
|||||||
compiler/fir/analysis-tests/testData/resolve/smartcasts/variables/smartcastAfterReassignment.fir.txt
Vendored
+1
-1
@@ -19,5 +19,5 @@ FILE: smartcastAfterReassignment.kt
|
|||||||
R|<local>/x| = String()
|
R|<local>/x| = String()
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/x| = Null(null)
|
R|<local>/x| = Null(null)
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -10,7 +10,7 @@ FILE: notIsNullOrEmpty.kt
|
|||||||
public final fun test_2(s: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test_2(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
||||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ FILE: eqNotEq.kt
|
|||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ FILE: receivers.kt
|
|||||||
this@R|special/anonymous|.R|/myRequireNotNull|()
|
this@R|special/anonymous|.R|/myRequireNotNull|()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /foo>#()
|
R|<local>/x|.<Inapplicable(UNSAFE_CALL): /foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||||
R|kotlin/with|<R|A?|, R|kotlin/Unit|>(R|<local>/x|, <L> = with@fun R|A?|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
R|kotlin/with|<R|A?|, R|kotlin/Unit|>(R|<local>/x|, <L> = with@fun R|A?|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=EXACTLY_ONCE> {
|
||||||
|
|||||||
+2
-2
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirWhileLoop
|
import org.jetbrains.kotlin.fir.expressions.FirWhileLoop
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.InapplicableWrongReceiver
|
import org.jetbrains.kotlin.fir.resolve.calls.UnsafeCall
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeAmbiguityError
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeInapplicableCandidateError
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedNameError
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedNameError
|
||||||
@@ -105,7 +105,7 @@ object FirForLoopChecker : FirBlockChecker() {
|
|||||||
is ConeInapplicableCandidateError -> {
|
is ConeInapplicableCandidateError -> {
|
||||||
if (unsafeCallFactory != null || noneApplicableFactory != null) {
|
if (unsafeCallFactory != null || noneApplicableFactory != null) {
|
||||||
diagnostic.candidate.diagnostics.filter { it.applicability == diagnostic.applicability }.forEach {
|
diagnostic.candidate.diagnostics.filter { it.applicability == diagnostic.applicability }.forEach {
|
||||||
if (it is InapplicableWrongReceiver) {
|
if (it is UnsafeCall) {
|
||||||
if (unsafeCallFactory != null) {
|
if (unsafeCallFactory != null) {
|
||||||
reporter.reportOn(
|
reporter.reportOn(
|
||||||
reportSource, unsafeCallFactory, context
|
reportSource, unsafeCallFactory, context
|
||||||
|
|||||||
+24
-31
@@ -84,40 +84,34 @@ private fun ConeKotlinType.isEffectivelyNotNull(): Boolean {
|
|||||||
private fun mapUnsafeCallError(
|
private fun mapUnsafeCallError(
|
||||||
diagnostic: ConeInapplicableCandidateError,
|
diagnostic: ConeInapplicableCandidateError,
|
||||||
source: FirSourceElement,
|
source: FirSourceElement,
|
||||||
rootCause: ResolutionDiagnostic?,
|
rootCause: UnsafeCall,
|
||||||
qualifiedAccessSource: FirSourceElement?,
|
qualifiedAccessSource: FirSourceElement?,
|
||||||
): FirDiagnostic<*>? {
|
): FirDiagnostic<*> {
|
||||||
if (rootCause !is InapplicableWrongReceiver) return null
|
if (diagnostic.candidate.callInfo.isImplicitInvoke) {
|
||||||
val actualType = rootCause.actualType ?: return null
|
return FirErrors.UNSAFE_IMPLICIT_INVOKE_CALL.on(source, rootCause.actualType)
|
||||||
val expectedType = rootCause.expectedType
|
}
|
||||||
if (actualType.isNullable && (expectedType == null || expectedType.isEffectivelyNotNull())) {
|
|
||||||
if (diagnostic.candidate.callInfo.isImplicitInvoke) {
|
|
||||||
return FirErrors.UNSAFE_IMPLICIT_INVOKE_CALL.on(source, actualType)
|
|
||||||
}
|
|
||||||
|
|
||||||
val candidateFunction = diagnostic.candidate.symbol.fir as? FirSimpleFunction
|
val candidateFunction = diagnostic.candidate.symbol.fir as? FirSimpleFunction
|
||||||
val candidateFunctionName = candidateFunction?.name
|
val candidateFunctionName = candidateFunction?.name
|
||||||
val left = diagnostic.candidate.callInfo.explicitReceiver
|
val left = diagnostic.candidate.callInfo.explicitReceiver
|
||||||
val right = diagnostic.candidate.callInfo.argumentList.arguments.singleOrNull()
|
val right = diagnostic.candidate.callInfo.argumentList.arguments.singleOrNull()
|
||||||
if (left != null && right != null &&
|
if (left != null && right != null &&
|
||||||
source.elementType == KtNodeTypes.OPERATION_REFERENCE &&
|
source.elementType == KtNodeTypes.OPERATION_REFERENCE &&
|
||||||
(candidateFunction?.isOperator == true || candidateFunction?.isInfix == true)
|
(candidateFunction?.isOperator == true || candidateFunction?.isInfix == true)
|
||||||
) {
|
) {
|
||||||
val operationToken = source.getChild(KtTokens.IDENTIFIER)
|
val operationToken = source.getChild(KtTokens.IDENTIFIER)
|
||||||
if (candidateFunction.isInfix && operationToken?.elementType == KtTokens.IDENTIFIER) {
|
if (candidateFunction.isInfix && operationToken?.elementType == KtTokens.IDENTIFIER) {
|
||||||
return FirErrors.UNSAFE_INFIX_CALL.on(source, left, candidateFunctionName!!.asString(), right)
|
return FirErrors.UNSAFE_INFIX_CALL.on(source, left, candidateFunctionName!!.asString(), right)
|
||||||
}
|
|
||||||
if (candidateFunction.isOperator && operationToken == null) {
|
|
||||||
return FirErrors.UNSAFE_OPERATOR_CALL.on(source, left, candidateFunctionName!!.asString(), right)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return if (source.kind == FirFakeSourceElementKind.ArrayAccessNameReference) {
|
if (candidateFunction.isOperator && operationToken == null) {
|
||||||
FirErrors.UNSAFE_CALL.on(source, actualType)
|
return FirErrors.UNSAFE_OPERATOR_CALL.on(source, left, candidateFunctionName!!.asString(), right)
|
||||||
} else {
|
|
||||||
FirErrors.UNSAFE_CALL.on(qualifiedAccessSource ?: source, actualType)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null
|
return if (source.kind == FirFakeSourceElementKind.ArrayAccessNameReference) {
|
||||||
|
FirErrors.UNSAFE_CALL.on(source, rootCause.actualType)
|
||||||
|
} else {
|
||||||
|
FirErrors.UNSAFE_CALL.on(qualifiedAccessSource ?: source, rootCause.actualType)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun mapInapplicableCandidateError(
|
private fun mapInapplicableCandidateError(
|
||||||
@@ -127,8 +121,6 @@ private fun mapInapplicableCandidateError(
|
|||||||
): List<FirDiagnostic<FirSourceElement>> {
|
): List<FirDiagnostic<FirSourceElement>> {
|
||||||
// TODO: Need to distinguish SMARTCAST_IMPOSSIBLE
|
// TODO: Need to distinguish SMARTCAST_IMPOSSIBLE
|
||||||
return diagnostic.candidate.diagnostics.filter { it.applicability == diagnostic.applicability }.mapNotNull { rootCause ->
|
return diagnostic.candidate.diagnostics.filter { it.applicability == diagnostic.applicability }.mapNotNull { rootCause ->
|
||||||
mapUnsafeCallError(diagnostic, source, rootCause, qualifiedAccessSource)?.let { return@mapNotNull it }
|
|
||||||
|
|
||||||
when (rootCause) {
|
when (rootCause) {
|
||||||
is VarargArgumentOutsideParentheses -> FirErrors.VARARG_OUTSIDE_PARENTHESES.on(
|
is VarargArgumentOutsideParentheses -> FirErrors.VARARG_OUTSIDE_PARENTHESES.on(
|
||||||
rootCause.argument.source ?: qualifiedAccessSource
|
rootCause.argument.source ?: qualifiedAccessSource
|
||||||
@@ -153,6 +145,7 @@ private fun mapInapplicableCandidateError(
|
|||||||
rootCause.argument.source ?: source,
|
rootCause.argument.source ?: source,
|
||||||
rootCause.argument.name.asString()
|
rootCause.argument.name.asString()
|
||||||
)
|
)
|
||||||
|
is UnsafeCall -> mapUnsafeCallError(diagnostic, source, rootCause, qualifiedAccessSource)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
}.ifEmpty { listOf(FirErrors.INAPPLICABLE_CANDIDATE.on(source, diagnostic.candidate.symbol)) }
|
}.ifEmpty { listOf(FirErrors.INAPPLICABLE_CANDIDATE.on(source, diagnostic.candidate.symbol)) }
|
||||||
|
|||||||
@@ -400,7 +400,7 @@ private fun checkApplicabilityForArgumentType(
|
|||||||
val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, context.session.typeContext)
|
val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, context.session.typeContext)
|
||||||
|
|
||||||
if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) {
|
if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) {
|
||||||
sink.reportDiagnostic(InapplicableWrongReceiver(expectedType, argumentType)) // TODO
|
sink.reportDiagnostic(UnsafeCall(argumentType)) // TODO
|
||||||
} else {
|
} else {
|
||||||
csBuilder.addSubtypeConstraint(argumentType, expectedType, position)
|
csBuilder.addSubtypeConstraint(argumentType, expectedType, position)
|
||||||
sink.reportDiagnostic(InapplicableWrongReceiver(expectedType, argumentType))
|
sink.reportDiagnostic(InapplicableWrongReceiver(expectedType, argumentType))
|
||||||
|
|||||||
+3
-1
@@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.calls
|
package org.jetbrains.kotlin.fir.resolve.calls
|
||||||
|
|
||||||
import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
|
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget
|
||||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability.*
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability.*
|
||||||
|
|
||||||
@@ -67,6 +67,8 @@ class InapplicableWrongReceiver(
|
|||||||
val actualType: ConeKotlinType? = null,
|
val actualType: ConeKotlinType? = null,
|
||||||
) : ResolutionDiagnostic(INAPPLICABLE_WRONG_RECEIVER)
|
) : ResolutionDiagnostic(INAPPLICABLE_WRONG_RECEIVER)
|
||||||
|
|
||||||
|
class UnsafeCall(val actualType: ConeKotlinType) : ResolutionDiagnostic(UNSAFE_CALL)
|
||||||
|
|
||||||
object LowerPriorityToPreserveCompatibilityDiagnostic : ResolutionDiagnostic(RESOLVED_NEED_PRESERVE_COMPATIBILITY)
|
object LowerPriorityToPreserveCompatibilityDiagnostic : ResolutionDiagnostic(RESOLVED_NEED_PRESERVE_COMPATIBILITY)
|
||||||
|
|
||||||
object CandidateChosenUsingOverloadResolutionByLambdaAnnotation : ResolutionDiagnostic(RESOLVED)
|
object CandidateChosenUsingOverloadResolutionByLambdaAnnotation : ResolutionDiagnostic(RESOLVED)
|
||||||
|
|||||||
@@ -6,19 +6,22 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.calls
|
package org.jetbrains.kotlin.fir.resolve.calls
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.FirSymbolOwner
|
||||||
|
import org.jetbrains.kotlin.fir.FirVisibilityChecker
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||||
import org.jetbrains.kotlin.fir.references.FirSuperReference
|
import org.jetbrains.kotlin.fir.references.FirSuperReference
|
||||||
import org.jetbrains.kotlin.fir.resolve.*
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.inference.*
|
import org.jetbrains.kotlin.fir.resolve.inference.*
|
||||||
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol
|
import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.typeContext
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
|
import org.jetbrains.kotlin.fir.visibilityChecker
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -106,7 +109,7 @@ object CheckDispatchReceiver : ResolutionStage() {
|
|||||||
val dispatchReceiverValueType = candidate.dispatchReceiverValue?.type ?: return
|
val dispatchReceiverValueType = candidate.dispatchReceiverValue?.type ?: return
|
||||||
|
|
||||||
if (!AbstractNullabilityChecker.isSubtypeOfAny(context.session.typeContext, dispatchReceiverValueType)) {
|
if (!AbstractNullabilityChecker.isSubtypeOfAny(context.session.typeContext, dispatchReceiverValueType)) {
|
||||||
sink.yieldDiagnostic(InapplicableWrongReceiver(actualType = dispatchReceiverValueType))
|
sink.yieldDiagnostic(UnsafeCall(dispatchReceiverValueType))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -954,6 +954,7 @@ fun CandidateApplicability.toResolutionStatus(): ResolutionStatus = when (this)
|
|||||||
CandidateApplicability.RESOLVED_WITH_ERROR,
|
CandidateApplicability.RESOLVED_WITH_ERROR,
|
||||||
CandidateApplicability.RESOLVED_NEED_PRESERVE_COMPATIBILITY -> ResolutionStatus.SUCCESS
|
CandidateApplicability.RESOLVED_NEED_PRESERVE_COMPATIBILITY -> ResolutionStatus.SUCCESS
|
||||||
CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER -> ResolutionStatus.RECEIVER_TYPE_ERROR
|
CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER -> ResolutionStatus.RECEIVER_TYPE_ERROR
|
||||||
|
CandidateApplicability.UNSAFE_CALL -> ResolutionStatus.UNSAFE_CALL_ERROR
|
||||||
else -> ResolutionStatus.OTHER_ERROR
|
else -> ResolutionStatus.OTHER_ERROR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -611,7 +611,7 @@ internal class PreviousResolutionError(candidateLevel: CandidateApplicability) :
|
|||||||
internal fun createPreviousResolveError(status: ResolutionStatus): PreviousResolutionError? {
|
internal fun createPreviousResolveError(status: ResolutionStatus): PreviousResolutionError? {
|
||||||
val level = when (status) {
|
val level = when (status) {
|
||||||
ResolutionStatus.SUCCESS, ResolutionStatus.INCOMPLETE_TYPE_INFERENCE -> return null
|
ResolutionStatus.SUCCESS, ResolutionStatus.INCOMPLETE_TYPE_INFERENCE -> return null
|
||||||
ResolutionStatus.UNSAFE_CALL_ERROR -> CandidateApplicability.MAY_THROW_RUNTIME_ERROR
|
ResolutionStatus.UNSAFE_CALL_ERROR -> CandidateApplicability.UNSAFE_CALL
|
||||||
ResolutionStatus.ARGUMENTS_MAPPING_ERROR -> CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR
|
ResolutionStatus.ARGUMENTS_MAPPING_ERROR -> CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR
|
||||||
ResolutionStatus.RECEIVER_TYPE_ERROR -> CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER
|
ResolutionStatus.RECEIVER_TYPE_ERROR -> CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER
|
||||||
else -> CandidateApplicability.INAPPLICABLE
|
else -> CandidateApplicability.INAPPLICABLE
|
||||||
|
|||||||
+2
-1
@@ -13,7 +13,8 @@ enum class CandidateApplicability {
|
|||||||
INAPPLICABLE, // arguments have wrong types
|
INAPPLICABLE, // arguments have wrong types
|
||||||
IMPOSSIBLE_TO_GENERATE, // access to outer class from nested
|
IMPOSSIBLE_TO_GENERATE, // access to outer class from nested
|
||||||
RUNTIME_ERROR, // problems with visibility
|
RUNTIME_ERROR, // problems with visibility
|
||||||
MAY_THROW_RUNTIME_ERROR, // unsafe call or unstable smart cast
|
UNSAFE_CALL, // receiver nullability doesn't match
|
||||||
|
MAY_THROW_RUNTIME_ERROR, // unstable smart cast
|
||||||
CONVENTION_ERROR, // missing infix, operator etc
|
CONVENTION_ERROR, // missing infix, operator etc
|
||||||
RESOLVED_LOW_PRIORITY,
|
RESOLVED_LOW_PRIORITY,
|
||||||
RESOLVED_NEED_PRESERVE_COMPATIBILITY, // call resolved successfully, but using new features that changes resolve
|
RESOLVED_NEED_PRESERVE_COMPATIBILITY, // call resolved successfully, but using new features that changes resolve
|
||||||
|
|||||||
+1
-1
@@ -170,7 +170,7 @@ class UnstableSmartCastDiagnosticError(
|
|||||||
class UnsafeCallError(
|
class UnsafeCallError(
|
||||||
val receiver: SimpleKotlinCallArgument,
|
val receiver: SimpleKotlinCallArgument,
|
||||||
val isForImplicitInvoke: Boolean = false
|
val isForImplicitInvoke: Boolean = false
|
||||||
) : KotlinCallDiagnostic(MAY_THROW_RUNTIME_ERROR) {
|
) : KotlinCallDiagnostic(UNSAFE_CALL) {
|
||||||
override fun report(reporter: DiagnosticReporter) = reporter.onCallReceiver(receiver, this)
|
override fun report(reporter: DiagnosticReporter) = reporter.onCallReceiver(receiver, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -38,13 +38,13 @@ fun test() {
|
|||||||
|
|
||||||
if (out != null && ins != null || out != null) {
|
if (out != null && ins != null || out != null) {
|
||||||
ins?.read();
|
ins?.read();
|
||||||
ins.<!NONE_APPLICABLE!>read<!>();
|
ins<!UNSAFE_CALL!>.<!>read();
|
||||||
out.println();
|
out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (out == null || out.println(0) == Unit) {
|
if (out == null || out.println(0) == Unit) {
|
||||||
out?.println(1)
|
out?.println(1)
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>1<!>)
|
out.<!NONE_APPLICABLE!>println<!>(1)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out.println(2)
|
out.println(2)
|
||||||
@@ -66,11 +66,11 @@ fun test() {
|
|||||||
|
|
||||||
if (1 == 2 || out != null && out.println(1) == Unit) {
|
if (1 == 2 || out != null && out.println(1) == Unit) {
|
||||||
out?.println(2);
|
out?.println(2);
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>2<!>);
|
out.<!NONE_APPLICABLE!>println<!>(2);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out?.println(3)
|
out?.println(3)
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>3<!>)
|
out.<!NONE_APPLICABLE!>println<!>(3)
|
||||||
}
|
}
|
||||||
|
|
||||||
out?.println()
|
out?.println()
|
||||||
@@ -103,7 +103,7 @@ fun test() {
|
|||||||
|
|
||||||
if (out == null || out.println(0) == Unit) {
|
if (out == null || out.println(0) == Unit) {
|
||||||
out?.println(1)
|
out?.println(1)
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>1<!>)
|
out.<!NONE_APPLICABLE!>println<!>(1)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out.println(2)
|
out.println(2)
|
||||||
@@ -114,12 +114,12 @@ fun test() {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out?.println();
|
out?.println();
|
||||||
out.<!NONE_APPLICABLE!>println<!>();
|
out<!UNSAFE_CALL!>.<!>println();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (out == null || out.println() == Unit) {
|
if (out == null || out.println() == Unit) {
|
||||||
out?.println();
|
out?.println();
|
||||||
out.<!NONE_APPLICABLE!>println<!>();
|
out<!UNSAFE_CALL!>.<!>println();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out.println();
|
out.println();
|
||||||
@@ -127,11 +127,11 @@ fun test() {
|
|||||||
|
|
||||||
if (1 == 2 || out != null && out.println(1) == Unit) {
|
if (1 == 2 || out != null && out.println(1) == Unit) {
|
||||||
out?.println(2);
|
out?.println(2);
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>2<!>);
|
out.<!NONE_APPLICABLE!>println<!>(2);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
out?.println(3)
|
out?.println(3)
|
||||||
out.println(<!TOO_MANY_ARGUMENTS!>3<!>)
|
out.<!NONE_APPLICABLE!>println<!>(3)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (1 > 2) {
|
if (1 > 2) {
|
||||||
@@ -149,7 +149,7 @@ fun test() {
|
|||||||
|
|
||||||
while (out2 == null) {
|
while (out2 == null) {
|
||||||
out2?.println();
|
out2?.println();
|
||||||
out2.<!NONE_APPLICABLE!>println<!>();
|
out2<!UNSAFE_CALL!>.<!>println();
|
||||||
}
|
}
|
||||||
out2.println()
|
out2.println()
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -19,14 +19,14 @@ fun <F> main(x: F, y: F, z: F, w: F, m: F) {
|
|||||||
val w1 = if (z != null) z else return
|
val w1 = if (z != null) z else return
|
||||||
val w2: F!! = if (w != null) w else return
|
val w2: F!! = if (w != null) w else return
|
||||||
|
|
||||||
y1.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
y1<!UNSAFE_CALL!>.<!>foo()
|
||||||
y2.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
y2<!UNSAFE_CALL!>.<!>foo()
|
||||||
x1.foo()
|
x1.foo()
|
||||||
x2.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
x2<!UNSAFE_CALL!>.<!>foo()
|
||||||
z1.foo()
|
z1.foo()
|
||||||
z2.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
z2<!UNSAFE_CALL!>.<!>foo()
|
||||||
w1.foo()
|
w1.foo()
|
||||||
w2.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
w2<!UNSAFE_CALL!>.<!>foo()
|
||||||
|
|
||||||
expectNN(m)
|
expectNN(m)
|
||||||
expectNN(m!!)
|
expectNN(m!!)
|
||||||
|
|||||||
+3
-3
@@ -8,7 +8,7 @@ fun <R> List<R>.a() {}
|
|||||||
|
|
||||||
fun test1(i: Int?) {
|
fun test1(i: Int?) {
|
||||||
1.<!INAPPLICABLE_CANDIDATE!>a<!>()
|
1.<!INAPPLICABLE_CANDIDATE!>a<!>()
|
||||||
i<!UNSAFE_CALL!>.<!>a()
|
i.<!INAPPLICABLE_CANDIDATE!>a<!>()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <R> test2(c: Collection<R>) {
|
fun <R> test2(c: Collection<R>) {
|
||||||
@@ -19,7 +19,7 @@ fun Int.foo() {}
|
|||||||
|
|
||||||
fun test3(s: String?) {
|
fun test3(s: String?) {
|
||||||
"".<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
"".<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||||
s<!UNSAFE_CALL!>.<!>foo()
|
s.<!INAPPLICABLE_CANDIDATE!>foo<!>()
|
||||||
"".foo(<!TOO_MANY_ARGUMENTS!>1<!>)
|
"".foo(<!TOO_MANY_ARGUMENTS!>1<!>)
|
||||||
s.foo(<!TOO_MANY_ARGUMENTS!>"a"<!>)
|
s.foo(<!TOO_MANY_ARGUMENTS!>"a"<!>)
|
||||||
}
|
}
|
||||||
@@ -52,5 +52,5 @@ fun test7(l: List<String?>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun test8(l: List<Any>?) {
|
fun test8(l: List<Any>?) {
|
||||||
l<!UNSAFE_CALL!>.<!>b()
|
l.<!INAPPLICABLE_CANDIDATE!>b<!>()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ fun <F : String?> bar(x: F) {
|
|||||||
foo1(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
foo1(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||||
foo1<F>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
foo1<F>(<!ARGUMENT_TYPE_MISMATCH!>x<!>)
|
||||||
|
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>foo2<!>()
|
x<!UNSAFE_CALL!>.<!>foo2()
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>foo2<!><F>()
|
x.<!INAPPLICABLE_CANDIDATE!>foo2<!><F>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
fun <E : String?, T : ((CharSequence) -> Unit)?> foo(x: E, y: T) {
|
||||||
if (x != null) {
|
if (x != null) {
|
||||||
<!INAPPLICABLE_CANDIDATE!>y<!>(x)
|
<!UNSAFE_IMPLICIT_INVOKE_CALL!>y<!>(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (y != null) {
|
if (y != null) {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
fun <T : Any?> foo(x: T) {
|
fun <T : Any?> foo(x: T) {
|
||||||
if (x is String?) {
|
if (x is String?) {
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
x<!UNSAFE_CALL!>.<!>length
|
||||||
|
|
||||||
if (x != null) {
|
if (x != null) {
|
||||||
x.length
|
x.length
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ fun <T : CharSequence?> foo(x: T) {
|
|||||||
x<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
|
x<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
|
||||||
}
|
}
|
||||||
|
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
x<!UNSAFE_CALL!>.<!>length
|
||||||
|
|
||||||
if (x is String) {
|
if (x is String) {
|
||||||
x.length
|
x.length
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ fun <T : String?> T.foo() {
|
|||||||
this<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
|
this<!UNNECESSARY_SAFE_CALL!>?.<!>bar1()
|
||||||
}
|
}
|
||||||
|
|
||||||
<!INAPPLICABLE_CANDIDATE!>length<!>
|
<!UNSAFE_CALL!>length<!>
|
||||||
|
|
||||||
if (this is String) {
|
if (this is String) {
|
||||||
length
|
length
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ class A<T : CharSequence?, E1 : T, E2: T?> {
|
|||||||
x.bar()
|
x.bar()
|
||||||
|
|
||||||
if (1 == 1) {
|
if (1 == 1) {
|
||||||
y.<!INAPPLICABLE_CANDIDATE!>bar<!>()
|
y<!UNSAFE_CALL!>.<!>bar()
|
||||||
}
|
}
|
||||||
|
|
||||||
x?.bar()
|
x?.bar()
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ fun CharSequence?.bar2() {}
|
|||||||
fun <T : CharSequence> T.bar3() {}
|
fun <T : CharSequence> T.bar3() {}
|
||||||
|
|
||||||
fun <T : String?> foo(x: T) {
|
fun <T : String?> foo(x: T) {
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>length<!>
|
x<!UNSAFE_CALL!>.<!>length
|
||||||
x?.length
|
x?.length
|
||||||
|
|
||||||
if (1 == 1) {
|
if (1 == 1) {
|
||||||
@@ -21,7 +21,7 @@ fun <T : String?> foo(x: T) {
|
|||||||
x?.bar1()
|
x?.bar1()
|
||||||
x?.bar2()
|
x?.bar2()
|
||||||
|
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>bar3<!>()
|
x<!UNSAFE_CALL!>.<!>bar3()
|
||||||
|
|
||||||
x?.let { it.length }
|
x?.let { it.length }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ fun Array<String>.length() : Int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun test(array : Array<String?>?) {
|
fun test(array : Array<String?>?) {
|
||||||
array?.sure<Array<String?>>()<!UNSAFE_CALL!>.<!>length()
|
array?.sure<Array<String?>>().<!INAPPLICABLE_CANDIDATE!>length<!>()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -80,7 +80,7 @@ operator fun <T> Foo6<T>.invoke(x: Int) {}
|
|||||||
|
|
||||||
fun main(x: Bar6<String>?) {
|
fun main(x: Bar6<String>?) {
|
||||||
x?.value(1)
|
x?.value(1)
|
||||||
x?.value.<!NONE_APPLICABLE!>invoke<!>(1)
|
x?.value<!UNSAFE_CALL!>.<!>invoke(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test case 7: top-level generic invoke and invoke with compatible additional dispatch recevier
|
// Test case 7: top-level generic invoke and invoke with compatible additional dispatch recevier
|
||||||
@@ -108,7 +108,7 @@ operator fun Foo8<String>.invoke(x: Int) {}
|
|||||||
|
|
||||||
fun main(x: Bar8<String>?) {
|
fun main(x: Bar8<String>?) {
|
||||||
x?.value(1)
|
x?.value(1)
|
||||||
x?.value.<!NONE_APPLICABLE!>invoke<!>(1)
|
x?.value<!UNSAFE_CALL!>.<!>invoke(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test case 9: additional receiver, generic invoke with pure type perameter receiver
|
// Test case 9: additional receiver, generic invoke with pure type perameter receiver
|
||||||
|
|||||||
+1
-1
@@ -12,7 +12,7 @@ fun test(a: A) {
|
|||||||
|
|
||||||
with("") {
|
with("") {
|
||||||
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
||||||
(a.x)(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!UNSAFE_IMPLICIT_INVOKE_CALL!>(a.x)<!>()
|
||||||
if (a.x != null) {
|
if (a.x != null) {
|
||||||
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!> // todo
|
a.x(<!NO_VALUE_FOR_PARAMETER!>)<!> // todo
|
||||||
(a.x)()
|
(a.x)()
|
||||||
|
|||||||
@@ -15,5 +15,5 @@ val test5: List<TNString?> = TODO()
|
|||||||
val test6: () -> List<TNString> = TODO()
|
val test6: () -> List<TNString> = TODO()
|
||||||
|
|
||||||
fun test(x: TNString) {
|
fun test(x: TNString) {
|
||||||
x.<!INAPPLICABLE_CANDIDATE!>hashCode<!>()
|
x<!UNSAFE_CALL!>.<!>hashCode()
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+1
-1
@@ -87,7 +87,7 @@ fun test() {
|
|||||||
this@with.<!UNRESOLVED_REFERENCE!>yield<!>("")
|
this@with.<!UNRESOLVED_REFERENCE!>yield<!>("")
|
||||||
|
|
||||||
yield2("")
|
yield2("")
|
||||||
this@with<!UNSAFE_CALL!>.<!>yield2("")
|
this@with.<!INAPPLICABLE_CANDIDATE!>yield2<!>("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,8 +103,8 @@ fun case_7() {
|
|||||||
|
|
||||||
// TESTCASE NUMBER: 8
|
// TESTCASE NUMBER: 8
|
||||||
fun case_8(x: TypealiasNullableString) {
|
fun case_8(x: TypealiasNullableString) {
|
||||||
if (x !== null === null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!> != null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>get<!>(0)
|
if (x !== null === null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!> != null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>get(0)
|
||||||
if (x !== null != null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!> != null === null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>get<!>(0)
|
if (x !== null != null && <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!> != null === null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>get(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TESTCASE NUMBER: 9
|
// TESTCASE NUMBER: 9
|
||||||
@@ -169,11 +169,11 @@ fun case_12(x: TypealiasNullableStringIndirect, y: TypealiasNullableStringIndire
|
|||||||
else if ((y === null !== null) is Boolean) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>
|
else if ((y === null !== null) is Boolean) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.equals(null)
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.equals(null)
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propT
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propT
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propNullableT
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propNullableT
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propNullableAny
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.propNullableAny
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funT()
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funT()
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funNullableT()
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funNullableT()
|
||||||
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funNullableAny()
|
else if (y === null != null) <!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableStringIndirect")!>x<!>.funNullableAny()
|
||||||
else "-1"
|
else "-1"
|
||||||
@@ -256,7 +256,7 @@ fun case_16() {
|
|||||||
|
|
||||||
if (x != null !is Boolean !is Boolean !is Boolean !is Boolean !is Boolean) {
|
if (x != null !is Boolean !is Boolean !is Boolean !is Boolean !is Boolean) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableNothing")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableNothing")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableNothing")!>x<!>.<!INAPPLICABLE_CANDIDATE!>java<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableNothing")!>x<!><!UNSAFE_CALL!>.<!>java
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ fun case_1(x: Class?) {
|
|||||||
fun case_2() {
|
fun case_2() {
|
||||||
var x: Class? = <!INITIALIZER_TYPE_MISMATCH!>10<!>
|
var x: Class? = <!INITIALIZER_TYPE_MISMATCH!>10<!>
|
||||||
x!!
|
x!!
|
||||||
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,7 @@ fun case_2() {
|
|||||||
fun case_3() {
|
fun case_3() {
|
||||||
var x: Class? = Class()
|
var x: Class? = Class()
|
||||||
x!!
|
x!!
|
||||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ inline fun <reified T, reified K> case_1(x: T) {
|
|||||||
inline fun <reified T, reified K> case_2(x: T) {
|
inline fun <reified T, reified K> case_2(x: T) {
|
||||||
x as K
|
x as K
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & K & T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & K & T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & K & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(x)
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & K & T")!>x<!><!UNSAFE_CALL!>.<!>equals(x)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -49,7 +49,7 @@ inline fun <reified T, reified K> case_4(x: T?) {
|
|||||||
inline fun <reified T, reified K> case_5(x: T) {
|
inline fun <reified T, reified K> case_5(x: T) {
|
||||||
if (x is K?) {
|
if (x is K?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & K? & T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & K? & T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & K? & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(x)
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & K? & T")!>x<!><!UNSAFE_CALL!>.<!>equals(x)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ fun case_3() {
|
|||||||
fun case_4() {
|
fun case_4() {
|
||||||
var x: Class? = Class()
|
var x: Class? = Class()
|
||||||
x!!
|
x!!
|
||||||
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
val y = <!DEBUG_INFO_EXPRESSION_TYPE("Class? & Class")!>x<!>[if (true) {x=null;0} else 0, <!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>]
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>
|
||||||
<!NO_VALUE_FOR_PARAMETER!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>.inv()
|
<!UNSAFE_CALL!><!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>[0]<!>.inv()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -54,7 +54,7 @@ fun case_4() {
|
|||||||
fun case_5() {
|
fun case_5() {
|
||||||
var x: Class? = Class()
|
var x: Class? = Class()
|
||||||
x!!
|
x!!
|
||||||
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>(if (true) {x=null;0} else 0, <!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ fun case_6() {
|
|||||||
fun case_7() {
|
fun case_7() {
|
||||||
var x: Class? = Class()
|
var x: Class? = Class()
|
||||||
x!!
|
x!!
|
||||||
<!NONE_APPLICABLE!>x<!>(if (true) {x=null;0} else 0)(<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
<!UNSAFE_IMPLICIT_INVOKE_CALL!>x<!>(if (true) {x=null;0} else 0)(<!ARGUMENT_TYPE_MISMATCH, DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!>)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
<!DEBUG_INFO_EXPRESSION_TYPE("Class?")!>x<!><!UNSAFE_CALL!>.<!>fun_1()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,14 +50,14 @@ fun case_4(x: Class?, y: Any) {
|
|||||||
fun case_5(x: Class?, y: String?) {
|
fun case_5(x: Class?, y: String?) {
|
||||||
x?.prop_12 = y ?: return
|
x?.prop_12 = y ?: return
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!><!UNSAFE_CALL!>.<!>toUpperCase()
|
||||||
}
|
}
|
||||||
|
|
||||||
// TESTCASE NUMBER: 6
|
// TESTCASE NUMBER: 6
|
||||||
fun case_6(x: Class?, y: String?) {
|
fun case_6(x: Class?, y: String?) {
|
||||||
x?.prop_9 = y !is String && throw Exception()
|
x?.prop_9 = y !is String && throw Exception()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!><!UNSAFE_CALL!>.<!>toUpperCase()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -68,7 +68,7 @@ fun case_6(x: Class?, y: String?) {
|
|||||||
fun case_7(x: Class?, y: String?) {
|
fun case_7(x: Class?, y: String?) {
|
||||||
x?.prop_12 = y!!
|
x?.prop_12 = y!!
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!><!UNSAFE_CALL!>.<!>toUpperCase()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -79,5 +79,5 @@ fun case_7(x: Class?, y: String?) {
|
|||||||
fun case_8(x: Class?, y: String?) {
|
fun case_8(x: Class?, y: String?) {
|
||||||
x?.prop_12 = if (y === null) throw Exception() else ""
|
x?.prop_12 = if (y === null) throw Exception() else ""
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!>.toUpperCase(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>y<!><!UNSAFE_CALL!>.<!>toUpperCase()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ fun case_1(x: Any) {
|
|||||||
fun case_2(x: Any?) {
|
fun case_2(x: Any?) {
|
||||||
if (x is Int || x is Float?) {
|
if (x is Int || x is Float?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!><!UNSAFE_CALL!>.<!>toByte()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ fun case_2(x: Any?) {
|
|||||||
fun case_3(x: Any?) {
|
fun case_3(x: Any?) {
|
||||||
if (x is Int? || x is Float) {
|
if (x is Int? || x is Float) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>?")!>x<!><!UNSAFE_CALL!>.<!>toByte()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ fun <T> case_6(x: T) {
|
|||||||
fun <T> case_7(x: T) {
|
fun <T> case_7(x: T) {
|
||||||
if (x is Int? || x is Float?) {
|
if (x is Int? || x is Float?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!><!UNSAFE_CALL!>.<!>toByte()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ fun <T> case_7(x: T) {
|
|||||||
inline fun <reified T> case_8(x: T) {
|
inline fun <reified T> case_8(x: T) {
|
||||||
if (x is Int? || x is Float?) {
|
if (x is Int? || x is Float?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!>.toByte(<!NO_VALUE_FOR_PARAMETER!>)<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T & kotlin.Number? & kotlin.Comparable<kotlin.Int & kotlin.Float>? & T")!>x<!><!UNSAFE_CALL!>.<!>toByte()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ fun <T, K> case_1(x: T?, y: K?) {
|
|||||||
y as K
|
y as K
|
||||||
val z = <!DEBUG_INFO_EXPRESSION_TYPE("T? & T")!>x<!> ?: <!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!>
|
val z = <!DEBUG_INFO_EXPRESSION_TYPE("T? & T")!>x<!> ?: <!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!>
|
||||||
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(10)
|
<!DEBUG_INFO_EXPRESSION_TYPE("T? & T")!>x<!><!UNSAFE_CALL!>.<!>equals(10)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>z<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>z<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>z<!><!UNSAFE_CALL!>.<!>equals(10)
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>z<!><!UNSAFE_CALL!>.<!>equals(10)
|
||||||
}
|
}
|
||||||
@@ -18,5 +18,5 @@ inline fun <reified T: Any, reified K: T?> case_2(y: K?) {
|
|||||||
y as K
|
y as K
|
||||||
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(10)
|
<!DEBUG_INFO_EXPRESSION_TYPE("K? & K")!>y<!><!UNSAFE_CALL!>.<!>equals(10)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,31 +8,31 @@ fun <T> case_1(x: T) {
|
|||||||
|
|
||||||
if (y != x) {
|
if (y != x) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!INAPPLICABLE_CANDIDATE!>equals<!>(null) }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!UNSAFE_CALL!>equals<!>(null) }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propT }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propT }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!INAPPLICABLE_CANDIDATE!>propAny<!> }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!UNSAFE_CALL!>propAny<!> }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propNullableT }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propNullableT }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propNullableAny }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { propNullableAny }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funT() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funT() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!INAPPLICABLE_CANDIDATE!>funAny<!>() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { <!UNSAFE_CALL!>funAny<!>() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funNullableT() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funNullableT() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funNullableAny(); <!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null) }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.apply { funNullableAny(); <!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>equals(null) }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null) }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!><!UNSAFE_CALL!>.<!>equals(null) }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propT }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propT }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!> }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!><!UNSAFE_CALL!>.<!>propAny }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propNullableT }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propNullableT }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propNullableAny }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.propNullableAny }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funT() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funT() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!><!UNSAFE_CALL!>.<!>funAny() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funNullableT() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funNullableT() }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funNullableAny() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.also { <!DEBUG_INFO_EXPRESSION_TYPE("T")!>it<!>.funNullableAny() }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -244,13 +244,13 @@ fun <T>case_18(x: T, f: Boolean) {
|
|||||||
while (f) {
|
while (f) {
|
||||||
if (false || false || false || x == nullableNothingProperty) break
|
if (false || false || false || x == nullableNothingProperty) break
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("T")!>x<!>.funNullableAny()
|
||||||
}
|
}
|
||||||
@@ -261,23 +261,23 @@ fun <K, V>case_19(map: MutableMap<K, V>, y: Nothing?) {
|
|||||||
for ((k, v) in map) {
|
for ((k, v) in map) {
|
||||||
if (k !== implicitNullableNothingProperty && true && v != y) else { break }
|
if (k !== implicitNullableNothingProperty && true && v != y) else { break }
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("K")!>k<!>.funNullableAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.<!INAPPLICABLE_CANDIDATE!>equals<!>(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("V")!>v<!>.funNullableAny()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,11 +142,11 @@ fun case_8(x: TypealiasNullableString) {
|
|||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
||||||
}
|
}
|
||||||
@@ -225,11 +225,11 @@ fun case_12(x: TypealiasNullableString, y: TypealiasNullableString, z1: Nothing?
|
|||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
||||||
} else "-1"
|
} else "-1"
|
||||||
@@ -859,11 +859,11 @@ fun case_47(x: TypealiasNullableString, y: TypealiasNullableString, z: Nothing?)
|
|||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.equals(null)
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>propAny<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>propAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableT
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.propNullableAny
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.<!INAPPLICABLE_CANDIDATE!>funAny<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!><!UNSAFE_CALL!>.<!>funAny()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableT()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
<!DEBUG_INFO_EXPRESSION_TYPE("TypealiasNullableString")!>x<!>.funNullableAny()
|
||||||
} else "-1"
|
} else "-1"
|
||||||
@@ -1296,11 +1296,11 @@ fun case_71(t: Any?) {
|
|||||||
if (t is Interface2?) {
|
if (t is Interface2?) {
|
||||||
if (t != z2) {
|
if (t != z2) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest()
|
||||||
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.let { <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>(); <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.let { <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!><!UNSAFE_CALL!>.<!>itest1(); <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!><!UNSAFE_CALL!>.<!>itest2() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1318,11 +1318,11 @@ fun case_72(t: Any?, z1: Nothing?) {
|
|||||||
|
|
||||||
if (t is Interface1? && t != z1 ?: z2 && t is Interface2?) {
|
if (t is Interface1? && t != z1 ?: z2 && t is Interface2?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!><!UNSAFE_CALL!>.<!>itest()
|
||||||
|
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.let { <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>(); <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>() }
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface1? & Interface2?")!>t<!>.let { <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!><!UNSAFE_CALL!>.<!>itest1(); <!DEBUG_INFO_EXPRESSION_TYPE("Interface1? & Interface2?")!>it<!><!UNSAFE_CALL!>.<!>itest2() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1341,11 +1341,11 @@ fun case_73(t: Any?) {
|
|||||||
if (t is ClassLevel2? && t is Interface1?) {
|
if (t is ClassLevel2? && t is Interface1?) {
|
||||||
if (t !is Interface3?) {} else if (false) {
|
if (t !is Interface3?) {} else if (false) {
|
||||||
if (t != `null`) {
|
if (t != `null`) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & ClassLevel2? & Interface1? & Interface3?")!>t<!>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1366,11 +1366,11 @@ fun case_74(t: Any?) {
|
|||||||
if (t == implicitNullableNothingProperty || t === implicitNullableNothingProperty || t !is Interface1?) else {
|
if (t == implicitNullableNothingProperty || t === implicitNullableNothingProperty || t !is Interface1?) else {
|
||||||
if (t is ClassLevel2?) {
|
if (t is ClassLevel2?) {
|
||||||
if (t is Interface3?) {
|
if (t is Interface3?) {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & Interface2? & Interface1? & ClassLevel2? & Interface3?")!>t<!>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1389,11 +1389,11 @@ fun case_75(t: Any?, z: Nothing?) {
|
|||||||
if (t !is ClassLevel2? || t !is ClassLevel1?) else {
|
if (t !is ClassLevel2? || t !is ClassLevel1?) else {
|
||||||
if (t === ((((((z)))))) || t !is Interface1?) else {
|
if (t === ((((((z)))))) || t !is Interface1?) else {
|
||||||
if (t !is Interface2? || t !is Interface3?) {} else {
|
if (t !is Interface2? || t !is Interface3?) {} else {
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>itest<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>itest()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test1<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test1()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>.<!INAPPLICABLE_CANDIDATE!>test2<!>()
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!><!UNSAFE_CALL!>.<!>test2()
|
||||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any? & ClassLevel2? & Interface1? & Interface2? & Interface3?")!>t<!>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user