[FIR] Use CandidateApplicability from FE 1.0
This commit is contained in:
@@ -10,12 +10,12 @@ FILE: default.kt
|
||||
R|/foo|(Int(1), Double(2.0))
|
||||
R|/foo|(Int(1), Double(2.0), Boolean(true))
|
||||
R|/foo|(Int(1), third = Boolean(true))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), String())
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), String())
|
||||
R|/bar|(Int(1), third = Boolean(true))
|
||||
R|/bar|(Int(1), Double(2.0), Boolean(true))
|
||||
R|/bar|(Int(1), Double(2.0), Boolean(true), String(my))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(Int(1), Boolean(true))
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /bar>#(Int(1), Boolean(true))
|
||||
R|/baz|(Int(1))
|
||||
R|/baz|(Int(1), vararg(String(my), String(yours)))
|
||||
R|/baz|(Int(1), z = Boolean(true))
|
||||
|
||||
+2
-2
@@ -22,8 +22,8 @@ FILE: defaultFromOverrides.kt
|
||||
public final fun foo(a: R|A|): R|kotlin/Unit| {
|
||||
R|<local>/a|.R|/A.foo|()
|
||||
R|<local>/a|.R|/A.foo|(Int(1))
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#()
|
||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#(String())
|
||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /A.bar>#()
|
||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /A.bar>#(String())
|
||||
R|<local>/a|.R|/A.bar|(y = Int(1))
|
||||
R|<local>/a|.R|/A.bar|(String(), Int(2))
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ FILE: lambda.kt
|
||||
^@foo Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(1), <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#(Int(1), <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@foo Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(f = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#(f = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@foo Unit
|
||||
}
|
||||
, <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||
@@ -45,11 +45,11 @@ FILE: lambda.kt
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(<L> = bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /bar>#(<L> = bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /bar>#(bar@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@bar Unit
|
||||
}
|
||||
)
|
||||
@@ -61,15 +61,15 @@ FILE: lambda.kt
|
||||
^@baz Unit
|
||||
}
|
||||
, Boolean(false))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /baz>#(<L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /baz>#(other = Boolean(false), <L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /baz>#(other = Boolean(false), <L> = baz@fun <anonymous>(): R|kotlin/Unit| {
|
||||
^@baz Unit
|
||||
}
|
||||
)
|
||||
|
||||
@@ -7,11 +7,11 @@ FILE: simple.kt
|
||||
R|/foo|(Int(1), Double(2.0), fourth = String(???), third = Boolean(false))
|
||||
R|/foo|(Int(1), second = Double(3.14), third = Boolean(false), fourth = String(!?))
|
||||
R|/foo|(third = Boolean(false), second = Double(2.71), fourth = String(?!), first = Int(0))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#()
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(Double(0.0), Boolean(false), Int(0), String())
|
||||
R|/foo|(Int(1), Double(2.0), third = Boolean(true), String())
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(second = Double(0.0), first = Int(0), fourth = String())
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#(second = Double(0.0), first = Int(0), fourth = String())
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(first = Double(0.0), second = Int(0), third = String(), fourth = Boolean(false))
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(first = Int(0), second = Double(0.0), third = Boolean(false), fourth = String(), first = Int(1))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), foth = String())
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), foth = String())
|
||||
}
|
||||
|
||||
@@ -12,5 +12,5 @@ FILE: vararg.kt
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(Int(1), Int(2))
|
||||
R|/bar|(Int(1), z = Boolean(true), vararg(y = *R|kotlin/arrayOf|<R|kotlin/String|>(vararg(String(my), String(yours)))))
|
||||
<Inapplicable(INAPPLICABLE): /bar>#(Int(0), z = Boolean(false), y = String(), y = String(other))
|
||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /bar>#(Int(0), String(), Boolean(true))
|
||||
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /bar>#(Int(0), String(), Boolean(true))
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ digraph jumps_kt {
|
||||
}
|
||||
51 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||
52 [label="Access variable R|<local>/y|"];
|
||||
53 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
53 [label="Function call: R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
54 [label="Exit block"];
|
||||
}
|
||||
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
|
||||
@@ -22,7 +22,7 @@ FILE: jumps.kt
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
public final fun test_3(x: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||
while(Boolean(true)) {
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ FILE: test.kt
|
||||
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
||||
when () {
|
||||
!=(R|<local>/bar|, Null(null)) -> {
|
||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(WRONG_RECEIVER): kotlin/CharSequence.length>#
|
||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/CharSequence.length>#
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ FILE: lambdaArgInScopeFunction.kt
|
||||
}
|
||||
) }
|
||||
R|<local>/lambda|.R|tests/_checkType/checkType|<R|() -> KotlinClass|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function0<KotlinClass>?>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -50,7 +50,7 @@ FILE: lambdaArgInScopeFunction.kt
|
||||
}
|
||||
)
|
||||
R|<local>/lambda|.R|tests/_checkType/checkType|<R|() -> KotlinClass|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function0<KotlinClass>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Unit) -> KotlinClass?|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
+4
-4
@@ -29,11 +29,11 @@ FILE: KotlinClass.kt
|
||||
}
|
||||
)
|
||||
R|<local>/invalidType|.R|tests/_checkType/checkType|<R|(JavaClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<JavaClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
R|/Case1.Case1|(R|<local>/javaClass|).R|/Case1.x|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -122,11 +122,11 @@ FILE: KotlinClass.kt
|
||||
}
|
||||
)
|
||||
R|<local>/invalidType|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
R|/Case2.Case2|(R|<local>/kotlinClass|).R|/Case2.x|.R|tests/_checkType/checkType|<R|(KotlinClass) -> kotlin/Boolean|>(<L> = checkType@fun R|tests/_checkType/Inv<kotlin/Function1<KotlinClass, kotlin/Boolean>>|.<anonymous>(): R|kotlin/Unit| {
|
||||
this@R|special/anonymous|.<Inapplicable(WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
this@R|special/anonymous|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): tests/_checkType/_>#<R|(kotlin/Nothing) -> kotlin/Boolean|>()
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/a|.<Inapplicable(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/a|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
|
||||
+4
-4
@@ -677,7 +677,7 @@ digraph boundSmartcastsInBranches_kt {
|
||||
275 [label="Access variable R|<local>/x|"];
|
||||
276 [label="Access variable R|kotlin/String.length|"];
|
||||
277 [label="Access variable R|<local>/y|"];
|
||||
278 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
278 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
279 [label="Access variable R|<local>/z|"];
|
||||
280 [label="Access variable R|kotlin/String.length|"];
|
||||
281 [label="Exit block"];
|
||||
@@ -702,11 +702,11 @@ digraph boundSmartcastsInBranches_kt {
|
||||
color=blue
|
||||
292 [label="Enter block"];
|
||||
293 [label="Access variable R|<local>/x|"];
|
||||
294 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
294 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
295 [label="Access variable R|<local>/y|"];
|
||||
296 [label="Access variable R|kotlin/String.length|"];
|
||||
297 [label="Access variable R|<local>/z|"];
|
||||
298 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
298 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
299 [label="Exit block"];
|
||||
}
|
||||
300 [label="Exit when branch result"];
|
||||
@@ -731,7 +731,7 @@ digraph boundSmartcastsInBranches_kt {
|
||||
311 [label="Access variable R|<local>/x|"];
|
||||
312 [label="Access variable R|kotlin/String.length|"];
|
||||
313 [label="Access variable R|<local>/y|"];
|
||||
314 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
314 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
315 [label="Access variable R|<local>/z|"];
|
||||
316 [label="Access variable R|kotlin/String.length|"];
|
||||
317 [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(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(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(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(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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/y|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
86 [label="Enter block"];
|
||||
87 [label="Access variable R|<local>/x|"];
|
||||
88 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
88 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||
89 [label="Exit block"];
|
||||
}
|
||||
90 [label="Exit when branch result"];
|
||||
@@ -294,7 +294,7 @@ digraph nullability_kt {
|
||||
97 [label="Exit when"];
|
||||
}
|
||||
98 [label="Access variable R|<local>/x|"];
|
||||
99 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
99 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||
100 [label="Exit block"];
|
||||
}
|
||||
101 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||
@@ -362,14 +362,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
119 [label="Enter block"];
|
||||
120 [label="Access variable R|<local>/x|"];
|
||||
121 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
121 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||
122 [label="Exit block"];
|
||||
}
|
||||
123 [label="Exit when branch result"];
|
||||
124 [label="Exit when"];
|
||||
}
|
||||
125 [label="Access variable R|<local>/x|"];
|
||||
126 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
||||
126 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||
127 [label="Exit block"];
|
||||
}
|
||||
128 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||
@@ -531,11 +531,11 @@ digraph nullability_kt {
|
||||
186 [label="Access variable R|/Q.data|"];
|
||||
187 [label="Access variable R|<local>/q|"];
|
||||
188 [label="Access variable R|/Q.data|"];
|
||||
189 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
189 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
190 [label="Access variable R|<local>/q|"];
|
||||
191 [label="Access variable R|/Q.data|"];
|
||||
192 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
193 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
192 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
193 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
194 [label="Exit block"];
|
||||
}
|
||||
195 [label="Exit when branch result"];
|
||||
@@ -605,11 +605,11 @@ digraph nullability_kt {
|
||||
218 [label="Access variable R|/Q.data|"];
|
||||
219 [label="Access variable R|<local>/q|"];
|
||||
220 [label="Access variable R|/Q.data|"];
|
||||
221 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
221 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
222 [label="Access variable R|<local>/q|"];
|
||||
223 [label="Access variable R|/Q.data|"];
|
||||
224 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
225 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
224 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
225 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
226 [label="Exit block"];
|
||||
}
|
||||
227 [label="Exit function test_6" style="filled" fillcolor=red];
|
||||
@@ -679,11 +679,11 @@ digraph nullability_kt {
|
||||
249 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
250 [label="Access variable R|<local>/q|"];
|
||||
251 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
252 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
252 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
253 [label="Access variable R|<local>/q|"];
|
||||
254 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||
255 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
256 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
||||
255 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()"];
|
||||
256 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
||||
257 [label="Exit block"];
|
||||
}
|
||||
258 [label="Exit when branch result"];
|
||||
@@ -808,7 +808,7 @@ digraph nullability_kt {
|
||||
295 [label="Exit when"];
|
||||
}
|
||||
296 [label="Access variable R|<local>/b|"];
|
||||
297 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
297 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_73 {
|
||||
color=blue
|
||||
298 [label="Enter when"];
|
||||
@@ -833,7 +833,7 @@ digraph nullability_kt {
|
||||
311 [label="Exit when"];
|
||||
}
|
||||
312 [label="Access variable R|<local>/b|"];
|
||||
313 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
313 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_76 {
|
||||
color=blue
|
||||
314 [label="Enter when"];
|
||||
@@ -858,7 +858,7 @@ digraph nullability_kt {
|
||||
327 [label="Exit when"];
|
||||
}
|
||||
328 [label="Access variable R|<local>/b|"];
|
||||
329 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
329 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_79 {
|
||||
color=blue
|
||||
330 [label="Enter when"];
|
||||
@@ -883,7 +883,7 @@ digraph nullability_kt {
|
||||
343 [label="Exit when"];
|
||||
}
|
||||
344 [label="Access variable R|<local>/b|"];
|
||||
345 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
345 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
346 [label="Exit block"];
|
||||
}
|
||||
347 [label="Exit function test_9" style="filled" fillcolor=red];
|
||||
@@ -979,14 +979,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
358 [label="Enter block"];
|
||||
359 [label="Access variable R|<local>/b|"];
|
||||
360 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
360 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
361 [label="Exit block"];
|
||||
}
|
||||
362 [label="Exit when branch result"];
|
||||
363 [label="Exit when"];
|
||||
}
|
||||
364 [label="Access variable R|<local>/b|"];
|
||||
365 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
365 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_87 {
|
||||
color=blue
|
||||
366 [label="Enter when"];
|
||||
@@ -1004,14 +1004,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
374 [label="Enter block"];
|
||||
375 [label="Access variable R|<local>/b|"];
|
||||
376 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
376 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
377 [label="Exit block"];
|
||||
}
|
||||
378 [label="Exit when branch result"];
|
||||
379 [label="Exit when"];
|
||||
}
|
||||
380 [label="Access variable R|<local>/b|"];
|
||||
381 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
381 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_90 {
|
||||
color=blue
|
||||
382 [label="Enter when"];
|
||||
@@ -1029,14 +1029,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
390 [label="Enter block"];
|
||||
391 [label="Access variable R|<local>/b|"];
|
||||
392 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
392 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
393 [label="Exit block"];
|
||||
}
|
||||
394 [label="Exit when branch result"];
|
||||
395 [label="Exit when"];
|
||||
}
|
||||
396 [label="Access variable R|<local>/b|"];
|
||||
397 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
397 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
subgraph cluster_93 {
|
||||
color=blue
|
||||
398 [label="Enter when"];
|
||||
@@ -1054,14 +1054,14 @@ digraph nullability_kt {
|
||||
color=blue
|
||||
406 [label="Enter block"];
|
||||
407 [label="Access variable R|<local>/b|"];
|
||||
408 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
408 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
409 [label="Exit block"];
|
||||
}
|
||||
410 [label="Exit when branch result"];
|
||||
411 [label="Exit when"];
|
||||
}
|
||||
412 [label="Access variable R|<local>/b|"];
|
||||
413 [label="Function call: R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
413 [label="Function call: R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||
414 [label="Exit block"];
|
||||
}
|
||||
415 [label="Exit function test_10" style="filled" fillcolor=red];
|
||||
@@ -1178,11 +1178,11 @@ digraph nullability_kt {
|
||||
446 [label="Access variable R|/QImpl.data|"];
|
||||
447 [label="Access variable R|<local>/q2|"];
|
||||
448 [label="Access variable R|/QImpl.data|"];
|
||||
449 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
449 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
450 [label="Access variable R|<local>/q2|"];
|
||||
451 [label="Access variable R|/QImpl.data|"];
|
||||
452 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
453 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
452 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
453 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
subgraph cluster_101 {
|
||||
color=blue
|
||||
454 [label="Enter when"];
|
||||
@@ -1319,11 +1319,11 @@ digraph nullability_kt {
|
||||
500 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
501 [label="Access variable R|<local>/q|"];
|
||||
502 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
503 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
503 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
504 [label="Access variable R|<local>/q|"];
|
||||
505 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||
506 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
507 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
506 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
507 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
508 [label="Exit block"];
|
||||
}
|
||||
509 [label="Exit when branch result"];
|
||||
@@ -1402,11 +1402,11 @@ digraph nullability_kt {
|
||||
534 [label="Access variable R|/QImplMutable.data|"];
|
||||
535 [label="Access variable R|<local>/q|"];
|
||||
536 [label="Access variable R|/QImplMutable.data|"];
|
||||
537 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
537 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
538 [label="Access variable R|<local>/q|"];
|
||||
539 [label="Access variable R|/QImplMutable.data|"];
|
||||
540 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
||||
541 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
540 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||
541 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||
542 [label="Exit block"];
|
||||
}
|
||||
543 [label="Exit when branch result"];
|
||||
|
||||
@@ -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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/x|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||
}
|
||||
else -> {
|
||||
R|<local>/x|.R|/A.foo|()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
||||
R|<local>/x|.<Inapplicable(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>#.R|kotlin/Int.inc|()
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(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>#.R|kotlin/Int.inc|()
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/Q.data|.<Inapplicable(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>#().R|kotlin/Int.inc|()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#()
|
||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
R|<local>/b|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
R|<local>/b|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
R|<local>/b|.<Inapplicable(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||
R|<local>/b|.<Inapplicable(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>#.R|kotlin/Int.inc|()
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(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>#.R|kotlin/Int.inc|()
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(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>#.R|kotlin/Int.inc|()
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#
|
||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(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(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(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(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(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(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(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(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(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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||
23 [label="Exit block"];
|
||||
}
|
||||
24 [label="Exit function test" style="filled" fillcolor=red];
|
||||
@@ -208,7 +208,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(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()"];
|
||||
82 [label="Exit block"];
|
||||
}
|
||||
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||
@@ -272,7 +272,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(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(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(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(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(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(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(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(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ FILE: notIsNullOrEmpty.kt
|
||||
public final fun test_2(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||
when () {
|
||||
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
else -> {
|
||||
R|<local>/s|.R|kotlin/String.length|
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ FILE: eqNotEq.kt
|
||||
R|<local>/x|.R|kotlin/String.length|
|
||||
}
|
||||
else -> {
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ FILE: receivers.kt
|
||||
this@R|special/anonymous|.R|/myRequireNotNull|()
|
||||
}
|
||||
)
|
||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /foo>#()
|
||||
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /foo>#()
|
||||
}
|
||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||
R|kotlin/with|<R|A?|, R|kotlin/Unit|>(R|<local>/x|, <L> = with@fun R|A?|.<anonymous>(): R|kotlin/Unit| <kind=EXACTLY_ONCE> {
|
||||
|
||||
+1
-2
@@ -14,16 +14,15 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory0
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
||||
import org.jetbrains.kotlin.fir.diagnostics.*
|
||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorLoop
|
||||
import org.jetbrains.kotlin.fir.expressions.FirErrorResolvedQualifier
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.CandidateApplicability
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.*
|
||||
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
|
||||
class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollector) : AbstractDiagnosticCollectorComponent(collector) {
|
||||
|
||||
@@ -36,6 +36,7 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilder
|
||||
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
class FirCallResolver(
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilder
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.addSubtypeConstraintIfCompatible
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.types.model.CaptureStatus
|
||||
|
||||
fun Candidate.resolveArgumentExpression(
|
||||
@@ -264,7 +265,7 @@ private fun checkApplicabilityForArgumentType(
|
||||
if (expectedType == null) return
|
||||
if (isReceiver && isDispatch) {
|
||||
if (!expectedType.isNullable && argumentType.isMarkedNullable) {
|
||||
sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER)
|
||||
sink.reportApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -277,10 +278,10 @@ private fun checkApplicabilityForArgumentType(
|
||||
val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, sink.components.session.typeContext)
|
||||
|
||||
if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) {
|
||||
sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER) // TODO
|
||||
sink.reportApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER) // TODO
|
||||
} else {
|
||||
csBuilder.addSubtypeConstraint(argumentType, expectedType, position)
|
||||
sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER)
|
||||
sink.reportApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,16 +73,6 @@ data class CallInfo(
|
||||
)
|
||||
}
|
||||
|
||||
enum class CandidateApplicability {
|
||||
HIDDEN,
|
||||
WRONG_RECEIVER,
|
||||
PARAMETER_MAPPING_ERROR,
|
||||
INAPPLICABLE,
|
||||
SYNTHETIC_RESOLVED,
|
||||
RESOLVED_LOW_PRIORITY,
|
||||
RESOLVED
|
||||
}
|
||||
|
||||
class Candidate(
|
||||
val symbol: AbstractFirBasedSymbol<*>,
|
||||
val dispatchReceiverValue: ReceiverValue?,
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
||||
|
||||
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.tower.TowerGroup
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
open class CandidateCollector(
|
||||
val components: BodyResolveComponents,
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
||||
|
||||
import org.jetbrains.kotlin.fir.PrivateForInline
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import kotlin.coroutines.Continuation
|
||||
|
||||
abstract class CheckerSink {
|
||||
|
||||
+1
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirTypePlaceholderProjection
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemOperation
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
internal object CreateFreshTypeVariableSubstitutorStage : ResolutionStage() {
|
||||
override suspend fun check(candidate: Candidate, sink: CheckerSink, callInfo: CallInfo) {
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
abstract class ResolutionDiagnostic(val applicability: CandidateApplicability)
|
||||
|
||||
@@ -20,7 +21,7 @@ class MixingNamedAndPositionArguments(override val argument: FirExpression) : In
|
||||
class TooManyArguments(
|
||||
val argument: FirExpression,
|
||||
val function: FirFunction<*>
|
||||
) : ResolutionDiagnostic(CandidateApplicability.PARAMETER_MAPPING_ERROR)
|
||||
) : ResolutionDiagnostic(CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR)
|
||||
|
||||
class NamedArgumentNotAllowed(
|
||||
override val argument: FirExpression,
|
||||
@@ -43,7 +44,7 @@ class NonVarargSpread(override val argument: FirExpression) : InapplicableArgume
|
||||
class NoValueForParameter(
|
||||
val valueParameter: FirValueParameter,
|
||||
val function: FirFunction<*>
|
||||
) : ResolutionDiagnostic(CandidateApplicability.PARAMETER_MAPPING_ERROR)
|
||||
) : ResolutionDiagnostic(CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR)
|
||||
|
||||
class NameNotFound(
|
||||
override val argument: FirExpression,
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.resolve.calls
|
||||
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import kotlin.coroutines.Continuation
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
import kotlin.coroutines.EmptyCoroutineContext
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemOperation
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind.*
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.min
|
||||
|
||||
|
||||
@@ -45,17 +46,17 @@ internal object CheckExplicitReceiverConsistency : ResolutionStage() {
|
||||
when (receiverKind) {
|
||||
NO_EXPLICIT_RECEIVER -> {
|
||||
if (explicitReceiver != null && explicitReceiver !is FirResolvedQualifier && !explicitReceiver.isSuperReferenceExpression()) {
|
||||
return sink.yieldApplicability(CandidateApplicability.WRONG_RECEIVER)
|
||||
return sink.yieldApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||
}
|
||||
}
|
||||
EXTENSION_RECEIVER, DISPATCH_RECEIVER -> {
|
||||
if (explicitReceiver == null) {
|
||||
return sink.yieldApplicability(CandidateApplicability.WRONG_RECEIVER)
|
||||
return sink.yieldApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||
}
|
||||
}
|
||||
BOTH_RECEIVERS -> {
|
||||
if (explicitReceiver == null) {
|
||||
return sink.yieldApplicability(CandidateApplicability.WRONG_RECEIVER)
|
||||
return sink.yieldApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||
}
|
||||
// Here we should also check additional invoke receiver
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirTypePlaceholderProjection
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
sealed class TypeArgumentMapping {
|
||||
abstract operator fun get(typeParameterIndex: Int): FirTypeProjection
|
||||
|
||||
+1
-1
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.resolve.diagnostics
|
||||
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.CandidateApplicability
|
||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
@@ -16,6 +15,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
class ConeUnresolvedReferenceError(val name: Name? = null) : ConeDiagnostic() {
|
||||
override val reason: String get() = "Unresolved reference" + if (name != null) ": ${name.asString()}" else ""
|
||||
|
||||
+1
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.resolve.calls.components.PostponedArgumentsAnalyzerC
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilder
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.CoroutinePosition
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.types.model.StubTypeMarker
|
||||
import org.jetbrains.kotlin.types.model.TypeVariableMarker
|
||||
import org.jetbrains.kotlin.types.model.freshTypeConstructor
|
||||
|
||||
+1
-1
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.resolve.DoubleColonLHS
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.CandidateApplicability
|
||||
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
@@ -19,6 +18,7 @@ import org.jetbrains.kotlin.fir.types.ConeTypeVariable
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
// --------------------------- Variables ---------------------------
|
||||
|
||||
|
||||
+2
-1
@@ -6,8 +6,8 @@
|
||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
||||
import org.jetbrains.kotlin.fir.declarations.builder.buildTypeParameter
|
||||
@@ -39,6 +39,7 @@ import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.compose
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
|
||||
class FirSyntheticCallGenerator(
|
||||
|
||||
+1
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.fir.types.builder.*
|
||||
import org.jetbrains.kotlin.fir.visitors.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) : FirPartialBodyResolveTransformer(transformer) {
|
||||
private inline val builtinTypes: BuiltinTypes get() = session.builtinTypes
|
||||
|
||||
+5
-1
@@ -18,7 +18,11 @@ enum class CandidateApplicability {
|
||||
RESOLVED_LOW_PRIORITY,
|
||||
RESOLVED_NEED_PRESERVE_COMPATIBILITY, // call resolved successfully, but using new features that changes resolve
|
||||
RESOLVED_WITH_ERROR, // call has error, but it is still successful from resolution perspective
|
||||
RESOLVED, // call success or has uncompleted inference or in other words possible successful candidate
|
||||
RESOLVED; // call success or has uncompleted inference or in other words possible successful candidate
|
||||
|
||||
companion object {
|
||||
val SYNTHETIC_RESOLVED: CandidateApplicability = RESOLVED_LOW_PRIORITY
|
||||
}
|
||||
}
|
||||
|
||||
val CandidateApplicability.isSuccess: Boolean
|
||||
|
||||
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/kt28456a.kt
|
||||
FUN name:testSimpleAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(PARAMETER_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
CONST Int type=kotlin.Int value=1
|
||||
CONST Int type=kotlin.Int value=2
|
||||
CONST Int type=kotlin.Int value=3
|
||||
|
||||
@@ -47,7 +47,7 @@ FILE fqName:<root> fileName:/kt28456b.kt
|
||||
FUN name:testSimpleAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||
BLOCK_BODY
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(PARAMETER_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
CONST Int type=kotlin.Int value=1
|
||||
CONST Int type=kotlin.Int value=0
|
||||
FUN name:testPostfixIncrement visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Int
|
||||
@@ -59,7 +59,7 @@ FILE fqName:<root> fileName:/kt28456b.kt
|
||||
CALL 'public final fun get (i: kotlin.Int, a: kotlin.Int, b: kotlin.Int, c: kotlin.Int, d: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=null
|
||||
$receiver: GET_VAR 'a: <root>.A declared in <root>.testPostfixIncrement' type=<root>.A origin=null
|
||||
i: CONST Int type=kotlin.Int value=1
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(PARAMETER_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
CONST Int type=kotlin.Int value=1
|
||||
CALL 'public final fun inc (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'val tmp_0: kotlin.Int [val] declared in <root>.testPostfixIncrement' type=kotlin.Int origin=null
|
||||
@@ -72,7 +72,7 @@ FILE fqName:<root> fileName:/kt28456b.kt
|
||||
GET_VAR 'a: <root>.A declared in <root>.testCompoundAssignment' type=<root>.A origin=null
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.Int [val]
|
||||
CONST Int type=kotlin.Int value=1
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(PARAMETER_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
ERROR_CALL 'Unresolved reference: <Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /set>#' type=kotlin.Unit
|
||||
GET_VAR 'val tmp_2: kotlin.Int [val] declared in <root>.testCompoundAssignment' type=kotlin.Int origin=null
|
||||
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
|
||||
$this: CALL 'public final fun get (i: kotlin.Int, a: kotlin.Int, b: kotlin.Int, c: kotlin.Int, d: kotlin.Int): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=null
|
||||
|
||||
+5
-1
@@ -8,7 +8,10 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.resolver
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirEmptyArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.*
|
||||
@@ -18,6 +21,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolve
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||
|
||||
class SingleCandidateResolver(
|
||||
private val firSession: FirSession,
|
||||
|
||||
Reference in New Issue
Block a user