[FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible

Also introduce few new diagnostics:
- NONE_APPLICABLE more many inapplicable candidates
- HIDDEN for visible candidates
This commit is contained in:
Dmitriy Novozhilov
2020-07-22 16:40:14 +03:00
committed by Mikhail Glukhikh
parent 5c0528b61e
commit f283f2db43
365 changed files with 1400 additions and 1451 deletions
@@ -202,7 +202,7 @@ digraph bangbang_kt {
78 [label="Exit when"];
}
79 [label="Access variable R|<local>/a|"];
80 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
80 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
81 [label="Exit block"];
}
82 [label="Exit function test_3" style="filled" fillcolor=red];
@@ -331,14 +331,14 @@ digraph bangbang_kt {
color=blue
123 [label="Enter block"];
124 [label="Access variable R|<local>/a|"];
125 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
125 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
126 [label="Exit block"];
}
127 [label="Exit when branch result"];
128 [label="Exit when"];
}
129 [label="Access variable R|<local>/a|"];
130 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
130 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
131 [label="Exit block"];
}
132 [label="Exit function test_5" style="filled" fillcolor=red];
@@ -32,7 +32,7 @@ FILE: bangbang.kt
}
}
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun test_4(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
when () {
@@ -46,11 +46,11 @@ FILE: bangbang.kt
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
when () {
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun <X : R|A?|> test_6(x: R|X|): R|kotlin/Unit| {
R|<local>/x|!!.R|/A.foo|()
@@ -53,7 +53,7 @@ digraph equalsToBoolean_kt {
color=blue
19 [label="Enter block"];
20 [label="Access variable R|<local>/b|"];
21 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
21 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
22 [label="Exit block"];
}
23 [label="Exit when branch result"];
@@ -137,7 +137,7 @@ digraph equalsToBoolean_kt {
color=blue
52 [label="Enter block"];
53 [label="Access variable R|<local>/b|"];
54 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
54 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
55 [label="Exit block"];
}
56 [label="Exit when branch result"];
@@ -212,7 +212,7 @@ digraph equalsToBoolean_kt {
color=blue
79 [label="Enter block"];
80 [label="Access variable R|<local>/b|"];
81 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
81 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
82 [label="Exit block"];
}
83 [label="Exit when branch result"];
@@ -278,7 +278,7 @@ digraph equalsToBoolean_kt {
color=blue
100 [label="Enter block"];
101 [label="Access variable R|<local>/b|"];
102 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
102 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
103 [label="Exit block"];
}
104 [label="Exit when branch result"];
@@ -362,7 +362,7 @@ digraph equalsToBoolean_kt {
color=blue
133 [label="Enter block"];
134 [label="Access variable R|<local>/b|"];
135 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
135 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
136 [label="Exit block"];
}
137 [label="Exit when branch result"];
@@ -428,7 +428,7 @@ digraph equalsToBoolean_kt {
color=blue
154 [label="Enter block"];
155 [label="Access variable R|<local>/b|"];
156 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
156 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
157 [label="Exit block"];
}
158 [label="Exit when branch result"];
@@ -503,7 +503,7 @@ digraph equalsToBoolean_kt {
color=blue
181 [label="Enter block"];
182 [label="Access variable R|<local>/b|"];
183 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
183 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
184 [label="Exit block"];
}
185 [label="Exit when branch result"];
@@ -587,7 +587,7 @@ digraph equalsToBoolean_kt {
color=blue
214 [label="Enter block"];
215 [label="Access variable R|<local>/b|"];
216 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()"];
216 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()"];
217 [label="Exit block"];
}
218 [label="Exit when branch result"];
@@ -12,7 +12,7 @@ FILE: equalsToBoolean.kt
R|<local>/b|.R|kotlin/Boolean.not|()
}
else -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
}
@@ -20,7 +20,7 @@ FILE: equalsToBoolean.kt
public final fun test_2(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
when () {
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
else -> {
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| {
when () {
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
else -> {
R|<local>/b|.R|kotlin/Boolean.not|()
@@ -45,7 +45,7 @@ FILE: equalsToBoolean.kt
R|<local>/b|.R|kotlin/Boolean.not|()
}
else -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
}
@@ -53,7 +53,7 @@ FILE: equalsToBoolean.kt
public final fun test_5(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
when () {
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
else -> {
R|<local>/b|.R|kotlin/Boolean.not|()
@@ -67,7 +67,7 @@ FILE: equalsToBoolean.kt
R|<local>/b|.R|kotlin/Boolean.not|()
}
else -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
}
@@ -78,7 +78,7 @@ FILE: equalsToBoolean.kt
R|<local>/b|.R|kotlin/Boolean.not|()
}
else -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
}
@@ -86,7 +86,7 @@ FILE: equalsToBoolean.kt
public final fun test_8(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
when () {
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Boolean.not]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
}
else -> {
R|<local>/b|.R|kotlin/Boolean.not|()
@@ -267,7 +267,7 @@ digraph jumpFromRhsOfOperator_kt {
101 [label="Exit ||"];
}
102 [label="Access variable R|<local>/a|"];
103 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
103 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
104 [label="Exit block"];
}
105 [label="Exit function test_5" style="filled" fillcolor=red];
@@ -309,7 +309,7 @@ digraph jumpFromRhsOfOperator_kt {
117 [label="Exit &&"];
}
118 [label="Access variable R|<local>/a|"];
119 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
119 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
120 [label="Exit block"];
}
121 [label="Exit function teat_6" style="filled" fillcolor=red];
@@ -364,14 +364,14 @@ digraph jumpFromRhsOfOperator_kt {
color=blue
139 [label="Enter block"];
140 [label="Access variable R|<local>/a|"];
141 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
141 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
142 [label="Exit block"];
}
143 [label="Exit when branch result"];
144 [label="Exit when"];
}
145 [label="Access variable R|<local>/a|"];
146 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
146 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
147 [label="Exit block"];
}
148 [label="Exit function test_7" style="filled" fillcolor=red];
@@ -437,14 +437,14 @@ digraph jumpFromRhsOfOperator_kt {
color=blue
166 [label="Enter block"];
167 [label="Access variable R|<local>/a|"];
168 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
168 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
169 [label="Exit block"];
}
170 [label="Exit when branch result"];
171 [label="Exit when"];
}
172 [label="Access variable R|<local>/a|"];
173 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
173 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
174 [label="Exit block"];
}
175 [label="Exit function test_8" style="filled" fillcolor=red];
@@ -31,27 +31,27 @@ FILE: jumpFromRhsOfOperator.kt
}
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|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
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|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
when () {
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun test_8(a: R|A?|): R|kotlin/Unit| {
when () {
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
@@ -670,7 +670,7 @@ digraph boundSmartcastsInBranches_kt {
274 [label="Access variable R|<local>/x|"];
275 [label="Access variable R|kotlin/String.length|"];
276 [label="Access variable R|<local>/y|"];
277 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
277 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
278 [label="Access variable R|<local>/z|"];
279 [label="Access variable R|kotlin/String.length|"];
280 [label="Exit block"];
@@ -695,11 +695,11 @@ digraph boundSmartcastsInBranches_kt {
color=blue
291 [label="Enter block"];
292 [label="Access variable R|<local>/x|"];
293 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
293 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
294 [label="Access variable R|<local>/y|"];
295 [label="Access variable R|kotlin/String.length|"];
296 [label="Access variable R|<local>/z|"];
297 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
297 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
298 [label="Exit block"];
}
299 [label="Exit when branch result"];
@@ -724,7 +724,7 @@ digraph boundSmartcastsInBranches_kt {
310 [label="Access variable R|<local>/x|"];
311 [label="Access variable R|kotlin/String.length|"];
312 [label="Access variable R|<local>/y|"];
313 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
313 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
314 [label="Access variable R|<local>/z|"];
315 [label="Access variable R|kotlin/String.length|"];
316 [label="Exit block"];
@@ -132,23 +132,23 @@ FILE: boundSmartcastsInBranches.kt
when () {
!=(R|<local>/x|, Null(null)) -> {
R|<local>/x|.R|kotlin/String.length|
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
R|<local>/z|.R|kotlin/String.length|
}
}
when () {
!=(R|<local>/y|, Null(null)) -> {
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
R|<local>/y|.R|kotlin/String.length|
R|<local>/z|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/z|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
}
when () {
!=(R|<local>/z|, Null(null)) -> {
R|<local>/x|.R|kotlin/String.length|
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
R|<local>/z|.R|kotlin/String.length|
}
}
@@ -136,9 +136,9 @@ digraph equalsAndIdentity_kt {
color=blue
50 [label="Enter block"];
51 [label="Access variable R|<local>/x|"];
52 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
52 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
53 [label="Access variable R|<local>/y|"];
54 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
54 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
55 [label="Exit block"];
}
56 [label="Exit when branch result"];
@@ -161,9 +161,9 @@ digraph equalsAndIdentity_kt {
color=blue
66 [label="Enter block"];
67 [label="Access variable R|<local>/x|"];
68 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
68 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
69 [label="Access variable R|<local>/y|"];
70 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
70 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
71 [label="Exit block"];
}
72 [label="Exit when branch result"];
@@ -22,15 +22,15 @@ FILE: equalsAndIdentity.kt
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
when () {
==(R|<local>/x|, R|<local>/y|) -> {
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
when () {
===(R|<local>/x|, R|<local>/y|) -> {
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
@@ -264,7 +264,7 @@ digraph nullability_kt {
color=blue
84 [label="Enter block"];
85 [label="Access variable R|<local>/x|"];
86 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
86 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
87 [label="Exit block"];
}
88 [label="Exit when branch result"];
@@ -280,7 +280,7 @@ digraph nullability_kt {
95 [label="Exit when"];
}
96 [label="Access variable R|<local>/x|"];
97 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
97 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
98 [label="Exit block"];
}
99 [label="Exit function test_1" style="filled" fillcolor=red];
@@ -348,14 +348,14 @@ digraph nullability_kt {
color=blue
117 [label="Enter block"];
118 [label="Access variable R|<local>/x|"];
119 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
119 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
120 [label="Exit block"];
}
121 [label="Exit when branch result"];
122 [label="Exit when"];
}
123 [label="Access variable R|<local>/x|"];
124 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
124 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
125 [label="Exit block"];
}
126 [label="Exit function test_2" style="filled" fillcolor=red];
@@ -517,11 +517,11 @@ digraph nullability_kt {
184 [label="Access variable R|/Q.data|"];
185 [label="Access variable R|<local>/q|"];
186 [label="Access variable R|/Q.data|"];
187 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
187 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
188 [label="Access variable R|<local>/q|"];
189 [label="Access variable R|/Q.data|"];
190 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
191 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
190 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
191 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
192 [label="Exit block"];
}
193 [label="Exit when branch result"];
@@ -591,11 +591,11 @@ digraph nullability_kt {
216 [label="Access variable R|/Q.data|"];
217 [label="Access variable R|<local>/q|"];
218 [label="Access variable R|/Q.data|"];
219 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
219 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
220 [label="Access variable R|<local>/q|"];
221 [label="Access variable R|/Q.data|"];
222 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
223 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
222 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
223 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
224 [label="Exit block"];
}
225 [label="Exit function test_6" style="filled" fillcolor=red];
@@ -665,11 +665,11 @@ digraph nullability_kt {
247 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
248 [label="Access variable R|<local>/q|"];
249 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
250 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()"];
250 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
251 [label="Access variable R|<local>/q|"];
252 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
253 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()"];
254 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#().<Unresolved name: inc>#()"];
253 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
254 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
255 [label="Exit block"];
}
256 [label="Exit when branch result"];
@@ -794,7 +794,7 @@ digraph nullability_kt {
293 [label="Exit when"];
}
294 [label="Access variable R|<local>/b|"];
295 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
295 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_71 {
color=blue
296 [label="Enter when"];
@@ -819,7 +819,7 @@ digraph nullability_kt {
309 [label="Exit when"];
}
310 [label="Access variable R|<local>/b|"];
311 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
311 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_74 {
color=blue
312 [label="Enter when"];
@@ -844,7 +844,7 @@ digraph nullability_kt {
325 [label="Exit when"];
}
326 [label="Access variable R|<local>/b|"];
327 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
327 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_77 {
color=blue
328 [label="Enter when"];
@@ -869,7 +869,7 @@ digraph nullability_kt {
341 [label="Exit when"];
}
342 [label="Access variable R|<local>/b|"];
343 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
343 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
344 [label="Exit block"];
}
345 [label="Exit function test_9" style="filled" fillcolor=red];
@@ -965,14 +965,14 @@ digraph nullability_kt {
color=blue
356 [label="Enter block"];
357 [label="Access variable R|<local>/b|"];
358 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
358 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
359 [label="Exit block"];
}
360 [label="Exit when branch result"];
361 [label="Exit when"];
}
362 [label="Access variable R|<local>/b|"];
363 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
363 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_85 {
color=blue
364 [label="Enter when"];
@@ -990,14 +990,14 @@ digraph nullability_kt {
color=blue
372 [label="Enter block"];
373 [label="Access variable R|<local>/b|"];
374 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
374 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
375 [label="Exit block"];
}
376 [label="Exit when branch result"];
377 [label="Exit when"];
}
378 [label="Access variable R|<local>/b|"];
379 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
379 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_88 {
color=blue
380 [label="Enter when"];
@@ -1015,14 +1015,14 @@ digraph nullability_kt {
color=blue
388 [label="Enter block"];
389 [label="Access variable R|<local>/b|"];
390 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
390 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
391 [label="Exit block"];
}
392 [label="Exit when branch result"];
393 [label="Exit when"];
}
394 [label="Access variable R|<local>/b|"];
395 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
395 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
subgraph cluster_91 {
color=blue
396 [label="Enter when"];
@@ -1040,14 +1040,14 @@ digraph nullability_kt {
color=blue
404 [label="Enter block"];
405 [label="Access variable R|<local>/b|"];
406 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
406 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
407 [label="Exit block"];
}
408 [label="Exit when branch result"];
409 [label="Exit when"];
}
410 [label="Access variable R|<local>/b|"];
411 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()"];
411 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
412 [label="Exit block"];
}
413 [label="Exit function test_10" style="filled" fillcolor=red];
@@ -1164,11 +1164,11 @@ digraph nullability_kt {
444 [label="Access variable R|/QImpl.data|"];
445 [label="Access variable R|<local>/q2|"];
446 [label="Access variable R|/QImpl.data|"];
447 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
447 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
448 [label="Access variable R|<local>/q2|"];
449 [label="Access variable R|/QImpl.data|"];
450 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
451 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
450 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
451 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
subgraph cluster_99 {
color=blue
452 [label="Enter when"];
@@ -1305,11 +1305,11 @@ digraph nullability_kt {
498 [label="Access variable R|/QImplWithCustomGetter.data|"];
499 [label="Access variable R|<local>/q|"];
500 [label="Access variable R|/QImplWithCustomGetter.data|"];
501 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
501 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
502 [label="Access variable R|<local>/q|"];
503 [label="Access variable R|/QImplWithCustomGetter.data|"];
504 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
505 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
504 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
505 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
506 [label="Exit block"];
}
507 [label="Exit when branch result"];
@@ -1388,11 +1388,11 @@ digraph nullability_kt {
532 [label="Access variable R|/QImplMutable.data|"];
533 [label="Access variable R|<local>/q|"];
534 [label="Access variable R|/QImplMutable.data|"];
535 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
535 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
536 [label="Access variable R|<local>/q|"];
537 [label="Access variable R|/QImplMutable.data|"];
538 [label="Access variable <Inapplicable(WRONG_RECEIVER): [/MyData.s]>#"];
539 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()"];
538 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
539 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
540 [label="Exit block"];
}
541 [label="Exit when branch result"];
@@ -68,7 +68,7 @@ fun test_5(q: Q?) {
if (q?.data?.s?.inc() != null) {
q.data // good
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
}
}
@@ -77,14 +77,14 @@ fun test_6(q: Q?) {
q?.data?.s?.inc() ?: return
q.data // good
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
}
fun test_7(q: Q?) {
if (q?.fdata()?.fs()?.inc() != null) {
q.fdata() // good
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>() // bad
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>().<!UNRESOLVED_REFERENCE!>inc<!>() // bad
q.fdata().<!INAPPLICABLE_CANDIDATE!>fs<!>().inc() // bad
}
}
@@ -149,7 +149,7 @@ fun test_11(q: QImpl?, q2: QImpl) {
// Issue: Smartcasting of QImpl.data affects all instances
q2.data
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
q2.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
if (q2.data != null) {
q2.data.s
@@ -163,7 +163,7 @@ fun test_12(q: QImplWithCustomGetter?) {
if (q?.data?.s?.inc() != null) {
q.data // good
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
}
}
@@ -172,6 +172,6 @@ fun test_13(q: QImplMutable?) {
if (q?.data?.s?.inc() != null) {
q.data // good
q.data.<!INAPPLICABLE_CANDIDATE!>s<!> // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.<!UNRESOLVED_REFERENCE!>inc<!>() // should be bad
q.data.<!INAPPLICABLE_CANDIDATE!>s<!>.inc() // should be bad
}
}
@@ -67,23 +67,23 @@ FILE: nullability.kt
R|<local>/x|.R|/A.foo|()
}
else -> {
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
}
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun test_2(x: R|A?|): R|kotlin/Unit| {
when () {
==(R|<local>/x|, Null(null)) -> {
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
else -> {
R|<local>/x|.R|/A.foo|()
}
}
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
public final fun test_3(x: R|A?|): R|kotlin/Unit| {
R|<local>/x| ?: ^test_3 Unit
@@ -102,8 +102,8 @@ FILE: nullability.kt
when () {
!=(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|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
}
}
@@ -111,15 +111,15 @@ FILE: nullability.kt
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|.R|/Q.data|
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
}
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
when () {
!=(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|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#()
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): [/MyData.fs]>#().<Unresolved name: inc>#()
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()
}
}
@@ -139,58 +139,58 @@ FILE: nullability.kt
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
===(R|<local>/a|, R|<local>/b|) -> {
R|<local>/b|.R|kotlin/Int.inc|()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
==(R|<local>/b|, R|<local>/a|) -> {
R|<local>/b|.R|kotlin/Int.inc|()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
===(R|<local>/b|, R|<local>/a|) -> {
R|<local>/b|.R|kotlin/Int.inc|()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
public final fun test_10(a: R|kotlin/Int?|, b: R|kotlin/Int?|): R|kotlin/Unit| {
when () {
==(R|<local>/a|, R|<local>/b|) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
===(R|<local>/a|, R|<local>/b|) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
==(R|<local>/b|, R|<local>/a|) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
when () {
===(R|<local>/b|, R|<local>/a|) -> {
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
}
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): [kotlin/Int.inc]>#()
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
}
public final fun test_11(q: R|QImpl?|, q2: R|QImpl|): R|kotlin/Unit| {
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|kotlin/Int.inc|()
R|<local>/q2|.R|/QImpl.data|
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
when () {
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
@@ -216,8 +216,8 @@ FILE: nullability.kt
when () {
!=(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|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
}
}
@@ -226,8 +226,8 @@ FILE: nullability.kt
when () {
!=(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|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): [/MyData.s]>#.<Unresolved name: inc>#()
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()
}
}
@@ -4,7 +4,7 @@ FILE: orInWhenBranch.kt
public final fun test_1(a: R|kotlin/Any?|): R|kotlin/Unit| {
when (R|<local>/a|) {
($subj$ is R|kotlin/String|) || ($subj$ is R|kotlin/Any|) -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
}
}
@@ -12,7 +12,7 @@ FILE: orInWhenBranch.kt
public final fun test_2(a: R|kotlin/Any?|): R|kotlin/Unit| {
when () {
(R|<local>/a| is R|kotlin/String|) || (R|<local>/a| is R|kotlin/Any|) -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
}
}
@@ -20,7 +20,7 @@ FILE: orInWhenBranch.kt
public final fun test_3(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
when (R|<local>/a|) {
($subj$ is R|kotlin/String|) || ==($subj$, R|<local>/b|) -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
}
}
@@ -28,7 +28,7 @@ FILE: orInWhenBranch.kt
public final fun test_4(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
when () {
(R|<local>/a| is R|kotlin/String|) || R|<local>/b| -> {
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /foo>#()
}
}
@@ -54,7 +54,7 @@ digraph safeCallAndEqualityToBool_kt {
color=blue
21 [label="Enter block"];
22 [label="Access variable R|<local>/s|"];
23 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
23 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
24 [label="Exit block"];
}
25 [label="Exit when branch result"];
@@ -131,7 +131,7 @@ digraph safeCallAndEqualityToBool_kt {
color=blue
49 [label="Enter block"];
50 [label="Access variable R|<local>/s|"];
51 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
51 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
52 [label="Exit block"];
}
53 [label="Exit when branch result"];
@@ -217,7 +217,7 @@ digraph safeCallAndEqualityToBool_kt {
color=blue
83 [label="Enter block"];
84 [label="Access variable R|<local>/s|"];
85 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
85 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
86 [label="Exit block"];
}
87 [label="Exit when branch result"];
@@ -294,7 +294,7 @@ digraph safeCallAndEqualityToBool_kt {
color=blue
111 [label="Enter block"];
112 [label="Access variable R|<local>/s|"];
113 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
113 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
114 [label="Exit block"];
}
115 [label="Exit when branch result"];
@@ -8,7 +8,7 @@ FILE: safeCallAndEqualityToBool.kt
R|<local>/s|.R|kotlin/String.length|
}
else -> {
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
}
@@ -19,7 +19,7 @@ FILE: safeCallAndEqualityToBool.kt
R|<local>/s|.R|kotlin/String.length|
}
else -> {
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
}
@@ -27,7 +27,7 @@ FILE: safeCallAndEqualityToBool.kt
public final fun test_3(s: R|kotlin/String?|): R|kotlin/Unit| {
when () {
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
else -> {
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| {
when () {
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
else -> {
R|<local>/s|.R|kotlin/String.length|
@@ -53,7 +53,7 @@ digraph safeCalls_kt {
19 [label="Function call: $subj$.R|/foo|(...)"];
20 [label="Exit safe call"];
21 [label="Access variable R|<local>/x|"];
22 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
22 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
23 [label="Exit block"];
}
24 [label="Exit function test" style="filled" fillcolor=red];
@@ -207,7 +207,7 @@ digraph safeCalls_kt {
78 [label="Function call: $subj$.R|/A.bool|()"];
79 [label="Exit safe call"];
80 [label="Access variable R|<local>/x|"];
81 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()"];
81 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
82 [label="Exit block"];
}
83 [label="Exit function test_4" style="filled" fillcolor=red];
@@ -271,7 +271,7 @@ digraph safeCalls_kt {
101 [label="Function call: $subj$.R|/boo|(...)"];
102 [label="Exit safe call"];
103 [label="Access variable R|<local>/x|"];
104 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()"];
104 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
105 [label="Exit block"];
}
106 [label="Exit function test_5" style="filled" fillcolor=red];
@@ -6,7 +6,7 @@ FILE: safeCalls.kt
}
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|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}
public abstract interface A : R|kotlin/Any| {
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| {
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()
}
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
}
@@ -37,5 +37,5 @@ FILE: safeCalls.kt
^test_5 Unit
}
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [/A.id]>#()
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()
}
@@ -77,7 +77,7 @@ digraph delayedAssignment_kt {
32 [label="Exit when"];
}
33 [label="Access variable R|<local>/a|"];
34 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()"];
34 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
35 [label="Exit block"];
}
36 [label="Exit function test" style="filled" fillcolor=red];
@@ -20,5 +20,5 @@ FILE: delayedAssignment.kt
}
}
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
}
@@ -103,7 +103,7 @@ digraph smartcastAfterReassignment_kt {
40 [label="Const: Null(null)"];
41 [label="Assignment: R|<local>/x|"];
42 [label="Access variable R|<local>/x|"];
43 [label="Access variable <Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#"];
43 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
44 [label="Exit block"];
}
45 [label="Exit function test_3" style="filled" fillcolor=red];
@@ -19,5 +19,5 @@ FILE: smartcastAfterReassignment.kt
R|<local>/x| = String()
R|<local>/x|.R|kotlin/String.length|
R|<local>/x| = Null(null)
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): [kotlin/String.length]>#
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
}