[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:
committed by
Mikhail Glukhikh
parent
5c0528b61e
commit
f283f2db43
@@ -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|()
|
||||
|
||||
+8
-8
@@ -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"];
|
||||
|
||||
+8
-8
@@ -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|()
|
||||
|
||||
+6
-6
@@ -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];
|
||||
|
||||
+6
-6
@@ -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>#()
|
||||
}
|
||||
|
||||
+4
-4
@@ -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"];
|
||||
|
||||
+4
-4
@@ -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|
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -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"];
|
||||
|
||||
+4
-4
@@ -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>#()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+4
-4
@@ -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"];
|
||||
|
||||
Vendored
+4
-4
@@ -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|
|
||||
|
||||
+3
-3
@@ -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];
|
||||
|
||||
+3
-3
@@ -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>#()
|
||||
}
|
||||
|
||||
+1
-1
@@ -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];
|
||||
|
||||
+1
-1
@@ -20,5 +20,5 @@ FILE: delayedAssignment.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): [/A.foo]>#()
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -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];
|
||||
|
||||
Vendored
+1
-1
@@ -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>#
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user