[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))
|
||||||
R|/foo|(Int(1), Double(2.0), Boolean(true))
|
R|/foo|(Int(1), Double(2.0), Boolean(true))
|
||||||
R|/foo|(Int(1), third = Boolean(true))
|
R|/foo|(Int(1), third = Boolean(true))
|
||||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#()
|
<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /foo>#()
|
||||||
<Inapplicable(PARAMETER_MAPPING_ERROR): /foo>#(Int(0), Double(0.0), Boolean(false), String())
|
<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), third = Boolean(true))
|
||||||
R|/bar|(Int(1), Double(2.0), Boolean(true))
|
R|/bar|(Int(1), Double(2.0), Boolean(true))
|
||||||
R|/bar|(Int(1), Double(2.0), Boolean(true), String(my))
|
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))
|
||||||
R|/baz|(Int(1), vararg(String(my), String(yours)))
|
R|/baz|(Int(1), vararg(String(my), String(yours)))
|
||||||
R|/baz|(Int(1), z = Boolean(true))
|
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| {
|
public final fun foo(a: R|A|): R|kotlin/Unit| {
|
||||||
R|<local>/a|.R|/A.foo|()
|
R|<local>/a|.R|/A.foo|()
|
||||||
R|<local>/a|.R|/A.foo|(Int(1))
|
R|<local>/a|.R|/A.foo|(Int(1))
|
||||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#()
|
R|<local>/a|.<Inapplicable(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR): /A.bar>#()
|
||||||
R|<local>/a|.<Inapplicable(PARAMETER_MAPPING_ERROR): /A.bar>#(String())
|
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|(y = Int(1))
|
||||||
R|<local>/a|.R|/A.bar|(String(), Int(2))
|
R|<local>/a|.R|/A.bar|(String(), Int(2))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,11 +18,11 @@ FILE: lambda.kt
|
|||||||
^@foo Unit
|
^@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
|
^@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
|
^@foo Unit
|
||||||
}
|
}
|
||||||
, <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
, <L> = foo@fun <anonymous>(): R|kotlin/Unit| {
|
||||||
@@ -45,11 +45,11 @@ FILE: lambda.kt
|
|||||||
^@bar Unit
|
^@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
|
^@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
|
^@bar Unit
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -61,15 +61,15 @@ FILE: lambda.kt
|
|||||||
^@baz Unit
|
^@baz Unit
|
||||||
}
|
}
|
||||||
, Boolean(false))
|
, 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
|
^@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
|
^@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
|
^@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), Double(2.0), fourth = String(???), third = Boolean(false))
|
||||||
R|/foo|(Int(1), second = Double(3.14), third = Boolean(false), fourth = String(!?))
|
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))
|
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())
|
<Inapplicable(INAPPLICABLE): /foo>#(Double(0.0), Boolean(false), Int(0), String())
|
||||||
R|/foo|(Int(1), Double(2.0), third = Boolean(true), 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 = 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(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))
|
<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)))))
|
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(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?|"];
|
51 [label="Variable declaration: lval y: R|kotlin/Int?|"];
|
||||||
52 [label="Access variable R|<local>/y|"];
|
52 [label="Access variable R|<local>/y|"];
|
||||||
53 [label="Function call: R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
53 [label="Function call: R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()"];
|
||||||
54 [label="Exit block"];
|
54 [label="Exit block"];
|
||||||
}
|
}
|
||||||
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
55 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ FILE: jumps.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/y|.<Inapplicable(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| {
|
public final fun test_3(x: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||||
while(Boolean(true)) {
|
while(Boolean(true)) {
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ FILE: test.kt
|
|||||||
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
lval bar: R|kotlin/CharSequence?| = R|<local>/x|?.{ $subj$.R|/SomeClass.bar| }
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/bar|, Null(null)) -> {
|
!=(R|<local>/bar|, Null(null)) -> {
|
||||||
R|<local>/x|.R|/SomeClass.bar|.<Inapplicable(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| {
|
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| {
|
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| {
|
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| {
|
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| {
|
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| {
|
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"];
|
78 [label="Exit when"];
|
||||||
}
|
}
|
||||||
79 [label="Access variable R|<local>/a|"];
|
79 [label="Access variable R|<local>/a|"];
|
||||||
80 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
80 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
81 [label="Exit block"];
|
81 [label="Exit block"];
|
||||||
}
|
}
|
||||||
82 [label="Exit function test_3" style="filled" fillcolor=red];
|
82 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
@@ -331,14 +331,14 @@ digraph bangbang_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
123 [label="Enter block"];
|
123 [label="Enter block"];
|
||||||
124 [label="Access variable R|<local>/a|"];
|
124 [label="Access variable R|<local>/a|"];
|
||||||
125 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
125 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
126 [label="Exit block"];
|
126 [label="Exit block"];
|
||||||
}
|
}
|
||||||
127 [label="Exit when branch result"];
|
127 [label="Exit when branch result"];
|
||||||
128 [label="Exit when"];
|
128 [label="Exit when"];
|
||||||
}
|
}
|
||||||
129 [label="Access variable R|<local>/a|"];
|
129 [label="Access variable R|<local>/a|"];
|
||||||
130 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
130 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
131 [label="Exit block"];
|
131 [label="Exit block"];
|
||||||
}
|
}
|
||||||
132 [label="Exit function test_5" style="filled" fillcolor=red];
|
132 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ FILE: bangbang.kt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/a|.<Inapplicable(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| {
|
public final fun test_4(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
@@ -46,11 +46,11 @@ FILE: bangbang.kt
|
|||||||
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
public final fun test_5(a: R|A?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
|
R|<local>/b| || R|<local>/a|!!.R|/A.foo|() -> {
|
||||||
R|<local>/a|.<Inapplicable(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| {
|
public final fun <X : R|A?|> test_6(x: R|X|): R|kotlin/Unit| {
|
||||||
R|<local>/x|!!.R|/A.foo|()
|
R|<local>/x|!!.R|/A.foo|()
|
||||||
|
|||||||
+8
-8
@@ -53,7 +53,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
19 [label="Enter block"];
|
19 [label="Enter block"];
|
||||||
20 [label="Access variable R|<local>/b|"];
|
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"];
|
22 [label="Exit block"];
|
||||||
}
|
}
|
||||||
23 [label="Exit when branch result"];
|
23 [label="Exit when branch result"];
|
||||||
@@ -137,7 +137,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
52 [label="Enter block"];
|
52 [label="Enter block"];
|
||||||
53 [label="Access variable R|<local>/b|"];
|
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"];
|
55 [label="Exit block"];
|
||||||
}
|
}
|
||||||
56 [label="Exit when branch result"];
|
56 [label="Exit when branch result"];
|
||||||
@@ -212,7 +212,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
79 [label="Enter block"];
|
79 [label="Enter block"];
|
||||||
80 [label="Access variable R|<local>/b|"];
|
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"];
|
82 [label="Exit block"];
|
||||||
}
|
}
|
||||||
83 [label="Exit when branch result"];
|
83 [label="Exit when branch result"];
|
||||||
@@ -278,7 +278,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
100 [label="Enter block"];
|
100 [label="Enter block"];
|
||||||
101 [label="Access variable R|<local>/b|"];
|
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"];
|
103 [label="Exit block"];
|
||||||
}
|
}
|
||||||
104 [label="Exit when branch result"];
|
104 [label="Exit when branch result"];
|
||||||
@@ -362,7 +362,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
133 [label="Enter block"];
|
133 [label="Enter block"];
|
||||||
134 [label="Access variable R|<local>/b|"];
|
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"];
|
136 [label="Exit block"];
|
||||||
}
|
}
|
||||||
137 [label="Exit when branch result"];
|
137 [label="Exit when branch result"];
|
||||||
@@ -428,7 +428,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
154 [label="Enter block"];
|
154 [label="Enter block"];
|
||||||
155 [label="Access variable R|<local>/b|"];
|
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"];
|
157 [label="Exit block"];
|
||||||
}
|
}
|
||||||
158 [label="Exit when branch result"];
|
158 [label="Exit when branch result"];
|
||||||
@@ -503,7 +503,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
181 [label="Enter block"];
|
181 [label="Enter block"];
|
||||||
182 [label="Access variable R|<local>/b|"];
|
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"];
|
184 [label="Exit block"];
|
||||||
}
|
}
|
||||||
185 [label="Exit when branch result"];
|
185 [label="Exit when branch result"];
|
||||||
@@ -587,7 +587,7 @@ digraph equalsToBoolean_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
214 [label="Enter block"];
|
214 [label="Enter block"];
|
||||||
215 [label="Access variable R|<local>/b|"];
|
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"];
|
217 [label="Exit block"];
|
||||||
}
|
}
|
||||||
218 [label="Exit when branch result"];
|
218 [label="Exit when branch result"];
|
||||||
|
|||||||
+8
-8
@@ -12,7 +12,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(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| {
|
public final fun test_2(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
!=(==(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -31,7 +31,7 @@ FILE: equalsToBoolean.kt
|
|||||||
public final fun test_3(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
public final fun test_3(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
==(==(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -45,7 +45,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(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| {
|
public final fun test_5(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
==(!=(R|<local>/b|, Boolean(true)), Boolean(true)) -> {
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
@@ -67,7 +67,7 @@ FILE: equalsToBoolean.kt
|
|||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.<Inapplicable(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|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
}
|
}
|
||||||
else -> {
|
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| {
|
public final fun test_8(b: R|kotlin/Boolean?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
!=(!=(R|<local>/b|, Boolean(true)), Boolean(false)) -> {
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Boolean.not>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Boolean.not>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/b|.R|kotlin/Boolean.not|()
|
R|<local>/b|.R|kotlin/Boolean.not|()
|
||||||
|
|||||||
+6
-6
@@ -267,7 +267,7 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
101 [label="Exit ||"];
|
101 [label="Exit ||"];
|
||||||
}
|
}
|
||||||
102 [label="Access variable R|<local>/a|"];
|
102 [label="Access variable R|<local>/a|"];
|
||||||
103 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
103 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
104 [label="Exit block"];
|
104 [label="Exit block"];
|
||||||
}
|
}
|
||||||
105 [label="Exit function test_5" style="filled" fillcolor=red];
|
105 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
@@ -309,7 +309,7 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
117 [label="Exit &&"];
|
117 [label="Exit &&"];
|
||||||
}
|
}
|
||||||
118 [label="Access variable R|<local>/a|"];
|
118 [label="Access variable R|<local>/a|"];
|
||||||
119 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
119 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
120 [label="Exit block"];
|
120 [label="Exit block"];
|
||||||
}
|
}
|
||||||
121 [label="Exit function teat_6" style="filled" fillcolor=red];
|
121 [label="Exit function teat_6" style="filled" fillcolor=red];
|
||||||
@@ -364,14 +364,14 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
139 [label="Enter block"];
|
139 [label="Enter block"];
|
||||||
140 [label="Access variable R|<local>/a|"];
|
140 [label="Access variable R|<local>/a|"];
|
||||||
141 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
141 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
142 [label="Exit block"];
|
142 [label="Exit block"];
|
||||||
}
|
}
|
||||||
143 [label="Exit when branch result"];
|
143 [label="Exit when branch result"];
|
||||||
144 [label="Exit when"];
|
144 [label="Exit when"];
|
||||||
}
|
}
|
||||||
145 [label="Access variable R|<local>/a|"];
|
145 [label="Access variable R|<local>/a|"];
|
||||||
146 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
146 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
147 [label="Exit block"];
|
147 [label="Exit block"];
|
||||||
}
|
}
|
||||||
148 [label="Exit function test_7" style="filled" fillcolor=red];
|
148 [label="Exit function test_7" style="filled" fillcolor=red];
|
||||||
@@ -437,14 +437,14 @@ digraph jumpFromRhsOfOperator_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
166 [label="Enter block"];
|
166 [label="Enter block"];
|
||||||
167 [label="Access variable R|<local>/a|"];
|
167 [label="Access variable R|<local>/a|"];
|
||||||
168 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
168 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
169 [label="Exit block"];
|
169 [label="Exit block"];
|
||||||
}
|
}
|
||||||
170 [label="Exit when branch result"];
|
170 [label="Exit when branch result"];
|
||||||
171 [label="Exit when"];
|
171 [label="Exit when"];
|
||||||
}
|
}
|
||||||
172 [label="Access variable R|<local>/a|"];
|
172 [label="Access variable R|<local>/a|"];
|
||||||
173 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
173 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
174 [label="Exit block"];
|
174 [label="Exit block"];
|
||||||
}
|
}
|
||||||
175 [label="Exit function test_8" style="filled" fillcolor=red];
|
175 [label="Exit function test_8" style="filled" fillcolor=red];
|
||||||
|
|||||||
+6
-6
@@ -31,27 +31,27 @@ FILE: jumpFromRhsOfOperator.kt
|
|||||||
}
|
}
|
||||||
public final fun test_5(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_5(a: R|A?|): R|kotlin/Unit| {
|
||||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|()
|
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|()
|
||||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun teat_6(a: R|A?|): R|kotlin/Unit| {
|
public final fun teat_6(a: R|A?|): R|kotlin/Unit| {
|
||||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|()
|
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|()
|
||||||
R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
}
|
}
|
||||||
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
|
public final fun test_7(a: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
|
==(R|<local>/a|, Null(null)) || throw R|java/lang/Exception.Exception|() -> {
|
||||||
R|<local>/a|.<Inapplicable(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| {
|
public final fun test_8(a: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
|
!=(R|<local>/a|, Null(null)) && throw R|java/lang/Exception.Exception|() -> {
|
||||||
R|<local>/a|.<Inapplicable(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|"];
|
275 [label="Access variable R|<local>/x|"];
|
||||||
276 [label="Access variable R|kotlin/String.length|"];
|
276 [label="Access variable R|kotlin/String.length|"];
|
||||||
277 [label="Access variable R|<local>/y|"];
|
277 [label="Access variable R|<local>/y|"];
|
||||||
278 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
278 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
279 [label="Access variable R|<local>/z|"];
|
279 [label="Access variable R|<local>/z|"];
|
||||||
280 [label="Access variable R|kotlin/String.length|"];
|
280 [label="Access variable R|kotlin/String.length|"];
|
||||||
281 [label="Exit block"];
|
281 [label="Exit block"];
|
||||||
@@ -702,11 +702,11 @@ digraph boundSmartcastsInBranches_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
292 [label="Enter block"];
|
292 [label="Enter block"];
|
||||||
293 [label="Access variable R|<local>/x|"];
|
293 [label="Access variable R|<local>/x|"];
|
||||||
294 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
294 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
295 [label="Access variable R|<local>/y|"];
|
295 [label="Access variable R|<local>/y|"];
|
||||||
296 [label="Access variable R|kotlin/String.length|"];
|
296 [label="Access variable R|kotlin/String.length|"];
|
||||||
297 [label="Access variable R|<local>/z|"];
|
297 [label="Access variable R|<local>/z|"];
|
||||||
298 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
298 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
299 [label="Exit block"];
|
299 [label="Exit block"];
|
||||||
}
|
}
|
||||||
300 [label="Exit when branch result"];
|
300 [label="Exit when branch result"];
|
||||||
@@ -731,7 +731,7 @@ digraph boundSmartcastsInBranches_kt {
|
|||||||
311 [label="Access variable R|<local>/x|"];
|
311 [label="Access variable R|<local>/x|"];
|
||||||
312 [label="Access variable R|kotlin/String.length|"];
|
312 [label="Access variable R|kotlin/String.length|"];
|
||||||
313 [label="Access variable R|<local>/y|"];
|
313 [label="Access variable R|<local>/y|"];
|
||||||
314 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
314 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
315 [label="Access variable R|<local>/z|"];
|
315 [label="Access variable R|<local>/z|"];
|
||||||
316 [label="Access variable R|kotlin/String.length|"];
|
316 [label="Access variable R|kotlin/String.length|"];
|
||||||
317 [label="Exit block"];
|
317 [label="Exit block"];
|
||||||
|
|||||||
+4
-4
@@ -132,23 +132,23 @@ FILE: boundSmartcastsInBranches.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/x|, Null(null)) -> {
|
!=(R|<local>/x|, Null(null)) -> {
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
R|<local>/z|.R|kotlin/String.length|
|
R|<local>/z|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/y|, Null(null)) -> {
|
!=(R|<local>/y|, Null(null)) -> {
|
||||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
R|<local>/y|.R|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 () {
|
when () {
|
||||||
!=(R|<local>/z|, Null(null)) -> {
|
!=(R|<local>/z|, Null(null)) -> {
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
R|<local>/z|.R|kotlin/String.length|
|
R|<local>/z|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -136,9 +136,9 @@ digraph equalsAndIdentity_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
50 [label="Enter block"];
|
50 [label="Enter block"];
|
||||||
51 [label="Access variable R|<local>/x|"];
|
51 [label="Access variable R|<local>/x|"];
|
||||||
52 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
52 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
53 [label="Access variable R|<local>/y|"];
|
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"];
|
55 [label="Exit block"];
|
||||||
}
|
}
|
||||||
56 [label="Exit when branch result"];
|
56 [label="Exit when branch result"];
|
||||||
@@ -161,9 +161,9 @@ digraph equalsAndIdentity_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
66 [label="Enter block"];
|
66 [label="Enter block"];
|
||||||
67 [label="Access variable R|<local>/x|"];
|
67 [label="Access variable R|<local>/x|"];
|
||||||
68 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
68 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
69 [label="Access variable R|<local>/y|"];
|
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"];
|
71 [label="Exit block"];
|
||||||
}
|
}
|
||||||
72 [label="Exit when branch result"];
|
72 [label="Exit when branch result"];
|
||||||
|
|||||||
+4
-4
@@ -22,15 +22,15 @@ FILE: equalsAndIdentity.kt
|
|||||||
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
public final fun test_2(x: R|A?|, y: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/x|, R|<local>/y|) -> {
|
==(R|<local>/x|, R|<local>/y|) -> {
|
||||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/x|, R|<local>/y|) -> {
|
===(R|<local>/x|, R|<local>/y|) -> {
|
||||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
R|<local>/y|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/y|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -278,7 +278,7 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
86 [label="Enter block"];
|
86 [label="Enter block"];
|
||||||
87 [label="Access variable R|<local>/x|"];
|
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"];
|
89 [label="Exit block"];
|
||||||
}
|
}
|
||||||
90 [label="Exit when branch result"];
|
90 [label="Exit when branch result"];
|
||||||
@@ -294,7 +294,7 @@ digraph nullability_kt {
|
|||||||
97 [label="Exit when"];
|
97 [label="Exit when"];
|
||||||
}
|
}
|
||||||
98 [label="Access variable R|<local>/x|"];
|
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"];
|
100 [label="Exit block"];
|
||||||
}
|
}
|
||||||
101 [label="Exit function test_1" style="filled" fillcolor=red];
|
101 [label="Exit function test_1" style="filled" fillcolor=red];
|
||||||
@@ -362,14 +362,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
119 [label="Enter block"];
|
119 [label="Enter block"];
|
||||||
120 [label="Access variable R|<local>/x|"];
|
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"];
|
122 [label="Exit block"];
|
||||||
}
|
}
|
||||||
123 [label="Exit when branch result"];
|
123 [label="Exit when branch result"];
|
||||||
124 [label="Exit when"];
|
124 [label="Exit when"];
|
||||||
}
|
}
|
||||||
125 [label="Access variable R|<local>/x|"];
|
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"];
|
127 [label="Exit block"];
|
||||||
}
|
}
|
||||||
128 [label="Exit function test_2" style="filled" fillcolor=red];
|
128 [label="Exit function test_2" style="filled" fillcolor=red];
|
||||||
@@ -531,11 +531,11 @@ digraph nullability_kt {
|
|||||||
186 [label="Access variable R|/Q.data|"];
|
186 [label="Access variable R|/Q.data|"];
|
||||||
187 [label="Access variable R|<local>/q|"];
|
187 [label="Access variable R|<local>/q|"];
|
||||||
188 [label="Access variable R|/Q.data|"];
|
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|"];
|
190 [label="Access variable R|<local>/q|"];
|
||||||
191 [label="Access variable R|/Q.data|"];
|
191 [label="Access variable R|/Q.data|"];
|
||||||
192 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
192 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||||
193 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
193 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
194 [label="Exit block"];
|
194 [label="Exit block"];
|
||||||
}
|
}
|
||||||
195 [label="Exit when branch result"];
|
195 [label="Exit when branch result"];
|
||||||
@@ -605,11 +605,11 @@ digraph nullability_kt {
|
|||||||
218 [label="Access variable R|/Q.data|"];
|
218 [label="Access variable R|/Q.data|"];
|
||||||
219 [label="Access variable R|<local>/q|"];
|
219 [label="Access variable R|<local>/q|"];
|
||||||
220 [label="Access variable R|/Q.data|"];
|
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|"];
|
222 [label="Access variable R|<local>/q|"];
|
||||||
223 [label="Access variable R|/Q.data|"];
|
223 [label="Access variable R|/Q.data|"];
|
||||||
224 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
224 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||||
225 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
225 [label="Function call: R|<local>/q|.R|/Q.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
226 [label="Exit block"];
|
226 [label="Exit block"];
|
||||||
}
|
}
|
||||||
227 [label="Exit function test_6" style="filled" fillcolor=red];
|
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|()"];
|
249 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
||||||
250 [label="Access variable R|<local>/q|"];
|
250 [label="Access variable R|<local>/q|"];
|
||||||
251 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
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|"];
|
253 [label="Access variable R|<local>/q|"];
|
||||||
254 [label="Function call: R|<local>/q|.R|/Q.fdata|()"];
|
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>#()"];
|
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(WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
256 [label="Function call: R|<local>/q|.R|/Q.fdata|().<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.fs>#().R|kotlin/Int.inc|()"];
|
||||||
257 [label="Exit block"];
|
257 [label="Exit block"];
|
||||||
}
|
}
|
||||||
258 [label="Exit when branch result"];
|
258 [label="Exit when branch result"];
|
||||||
@@ -808,7 +808,7 @@ digraph nullability_kt {
|
|||||||
295 [label="Exit when"];
|
295 [label="Exit when"];
|
||||||
}
|
}
|
||||||
296 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_73 {
|
||||||
color=blue
|
color=blue
|
||||||
298 [label="Enter when"];
|
298 [label="Enter when"];
|
||||||
@@ -833,7 +833,7 @@ digraph nullability_kt {
|
|||||||
311 [label="Exit when"];
|
311 [label="Exit when"];
|
||||||
}
|
}
|
||||||
312 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_76 {
|
||||||
color=blue
|
color=blue
|
||||||
314 [label="Enter when"];
|
314 [label="Enter when"];
|
||||||
@@ -858,7 +858,7 @@ digraph nullability_kt {
|
|||||||
327 [label="Exit when"];
|
327 [label="Exit when"];
|
||||||
}
|
}
|
||||||
328 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_79 {
|
||||||
color=blue
|
color=blue
|
||||||
330 [label="Enter when"];
|
330 [label="Enter when"];
|
||||||
@@ -883,7 +883,7 @@ digraph nullability_kt {
|
|||||||
343 [label="Exit when"];
|
343 [label="Exit when"];
|
||||||
}
|
}
|
||||||
344 [label="Access variable R|<local>/b|"];
|
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"];
|
346 [label="Exit block"];
|
||||||
}
|
}
|
||||||
347 [label="Exit function test_9" style="filled" fillcolor=red];
|
347 [label="Exit function test_9" style="filled" fillcolor=red];
|
||||||
@@ -979,14 +979,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
358 [label="Enter block"];
|
358 [label="Enter block"];
|
||||||
359 [label="Access variable R|<local>/b|"];
|
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"];
|
361 [label="Exit block"];
|
||||||
}
|
}
|
||||||
362 [label="Exit when branch result"];
|
362 [label="Exit when branch result"];
|
||||||
363 [label="Exit when"];
|
363 [label="Exit when"];
|
||||||
}
|
}
|
||||||
364 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_87 {
|
||||||
color=blue
|
color=blue
|
||||||
366 [label="Enter when"];
|
366 [label="Enter when"];
|
||||||
@@ -1004,14 +1004,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
374 [label="Enter block"];
|
374 [label="Enter block"];
|
||||||
375 [label="Access variable R|<local>/b|"];
|
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"];
|
377 [label="Exit block"];
|
||||||
}
|
}
|
||||||
378 [label="Exit when branch result"];
|
378 [label="Exit when branch result"];
|
||||||
379 [label="Exit when"];
|
379 [label="Exit when"];
|
||||||
}
|
}
|
||||||
380 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_90 {
|
||||||
color=blue
|
color=blue
|
||||||
382 [label="Enter when"];
|
382 [label="Enter when"];
|
||||||
@@ -1029,14 +1029,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
390 [label="Enter block"];
|
390 [label="Enter block"];
|
||||||
391 [label="Access variable R|<local>/b|"];
|
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"];
|
393 [label="Exit block"];
|
||||||
}
|
}
|
||||||
394 [label="Exit when branch result"];
|
394 [label="Exit when branch result"];
|
||||||
395 [label="Exit when"];
|
395 [label="Exit when"];
|
||||||
}
|
}
|
||||||
396 [label="Access variable R|<local>/b|"];
|
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 {
|
subgraph cluster_93 {
|
||||||
color=blue
|
color=blue
|
||||||
398 [label="Enter when"];
|
398 [label="Enter when"];
|
||||||
@@ -1054,14 +1054,14 @@ digraph nullability_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
406 [label="Enter block"];
|
406 [label="Enter block"];
|
||||||
407 [label="Access variable R|<local>/b|"];
|
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"];
|
409 [label="Exit block"];
|
||||||
}
|
}
|
||||||
410 [label="Exit when branch result"];
|
410 [label="Exit when branch result"];
|
||||||
411 [label="Exit when"];
|
411 [label="Exit when"];
|
||||||
}
|
}
|
||||||
412 [label="Access variable R|<local>/b|"];
|
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"];
|
414 [label="Exit block"];
|
||||||
}
|
}
|
||||||
415 [label="Exit function test_10" style="filled" fillcolor=red];
|
415 [label="Exit function test_10" style="filled" fillcolor=red];
|
||||||
@@ -1178,11 +1178,11 @@ digraph nullability_kt {
|
|||||||
446 [label="Access variable R|/QImpl.data|"];
|
446 [label="Access variable R|/QImpl.data|"];
|
||||||
447 [label="Access variable R|<local>/q2|"];
|
447 [label="Access variable R|<local>/q2|"];
|
||||||
448 [label="Access variable R|/QImpl.data|"];
|
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|"];
|
450 [label="Access variable R|<local>/q2|"];
|
||||||
451 [label="Access variable R|/QImpl.data|"];
|
451 [label="Access variable R|/QImpl.data|"];
|
||||||
452 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
452 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||||
453 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
453 [label="Function call: R|<local>/q2|.R|/QImpl.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
subgraph cluster_101 {
|
subgraph cluster_101 {
|
||||||
color=blue
|
color=blue
|
||||||
454 [label="Enter when"];
|
454 [label="Enter when"];
|
||||||
@@ -1319,11 +1319,11 @@ digraph nullability_kt {
|
|||||||
500 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
500 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||||
501 [label="Access variable R|<local>/q|"];
|
501 [label="Access variable R|<local>/q|"];
|
||||||
502 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
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|"];
|
504 [label="Access variable R|<local>/q|"];
|
||||||
505 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
505 [label="Access variable R|/QImplWithCustomGetter.data|"];
|
||||||
506 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
506 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||||
507 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
507 [label="Function call: R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
508 [label="Exit block"];
|
508 [label="Exit block"];
|
||||||
}
|
}
|
||||||
509 [label="Exit when branch result"];
|
509 [label="Exit when branch result"];
|
||||||
@@ -1402,11 +1402,11 @@ digraph nullability_kt {
|
|||||||
534 [label="Access variable R|/QImplMutable.data|"];
|
534 [label="Access variable R|/QImplMutable.data|"];
|
||||||
535 [label="Access variable R|<local>/q|"];
|
535 [label="Access variable R|<local>/q|"];
|
||||||
536 [label="Access variable R|/QImplMutable.data|"];
|
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|"];
|
538 [label="Access variable R|<local>/q|"];
|
||||||
539 [label="Access variable R|/QImplMutable.data|"];
|
539 [label="Access variable R|/QImplMutable.data|"];
|
||||||
540 [label="Access variable <Inapplicable(WRONG_RECEIVER): /MyData.s>#"];
|
540 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#"];
|
||||||
541 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
541 [label="Function call: R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /MyData.s>#.R|kotlin/Int.inc|()"];
|
||||||
542 [label="Exit block"];
|
542 [label="Exit block"];
|
||||||
}
|
}
|
||||||
543 [label="Exit when branch result"];
|
543 [label="Exit when branch result"];
|
||||||
|
|||||||
@@ -67,23 +67,23 @@ FILE: nullability.kt
|
|||||||
R|<local>/x|.R|/A.foo|()
|
R|<local>/x|.R|/A.foo|()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.<Inapplicable(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| {
|
public final fun test_2(x: R|A?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/x|, Null(null)) -> {
|
==(R|<local>/x|, Null(null)) -> {
|
||||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()
|
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.R|/A.foo|()
|
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| {
|
public final fun test_3(x: R|A?|): R|kotlin/Unit| {
|
||||||
R|<local>/x| ?: ^test_3 Unit
|
R|<local>/x| ?: ^test_3 Unit
|
||||||
@@ -102,8 +102,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/Q.data|
|
R|<local>/q|.R|/Q.data|
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/Q.data|.<Inapplicable(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|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,15 +111,15 @@ FILE: nullability.kt
|
|||||||
public final fun test_6(q: R|Q?|): R|kotlin/Unit| {
|
public final fun test_6(q: R|Q?|): R|kotlin/Unit| {
|
||||||
R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() } ?: ^test_6 Unit
|
R|<local>/q|?.{ $subj$.R|/Q.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() } ?: ^test_6 Unit
|
||||||
R|<local>/q|.R|/Q.data|
|
R|<local>/q|.R|/Q.data|
|
||||||
R|<local>/q|.R|/Q.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/Q.data|.<Inapplicable(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|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
|
public final fun test_7(q: R|Q?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/Q.fdata|() }?.{ $subj$.R|/MyData.fs|() }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/Q.fdata|() }?.{ $subj$.R|/MyData.fs|() }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/Q.fdata|()
|
R|<local>/q|.R|/Q.fdata|()
|
||||||
R|<local>/q|.R|/Q.fdata|().<Inapplicable(WRONG_RECEIVER): /MyData.fs>#()
|
R|<local>/q|.R|/Q.fdata|().<Inapplicable(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|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 () {
|
when () {
|
||||||
===(R|<local>/a|, R|<local>/b|) -> {
|
===(R|<local>/a|, R|<local>/b|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/b|, R|<local>/a|) -> {
|
==(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(WRONG_RECEIVER): kotlin/Int.inc>#()
|
R|<local>/b|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/Int.inc>#()
|
||||||
when () {
|
when () {
|
||||||
===(R|<local>/b|, R|<local>/a|) -> {
|
===(R|<local>/b|, R|<local>/a|) -> {
|
||||||
R|<local>/b|.R|kotlin/Int.inc|()
|
R|<local>/b|.R|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
R|<local>/b|.<Inapplicable(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| {
|
public final fun test_10(a: R|kotlin/Int?|, b: R|kotlin/Int?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
==(R|<local>/a|, R|<local>/b|) -> {
|
==(R|<local>/a|, R|<local>/b|) -> {
|
||||||
R|<local>/b|.<Inapplicable(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 () {
|
when () {
|
||||||
===(R|<local>/a|, R|<local>/b|) -> {
|
===(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 () {
|
when () {
|
||||||
==(R|<local>/b|, R|<local>/a|) -> {
|
==(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 () {
|
when () {
|
||||||
===(R|<local>/b|, R|<local>/a|) -> {
|
===(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| {
|
public final fun test_11(q: R|QImpl?|, q2: R|QImpl|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
@@ -199,8 +199,8 @@ FILE: nullability.kt
|
|||||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|
|
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|
|
||||||
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|.R|kotlin/Int.inc|()
|
R|<local>/q|.R|/QImpl.data|.R|/MyData.s|.R|kotlin/Int.inc|()
|
||||||
R|<local>/q2|.R|/QImpl.data|
|
R|<local>/q2|.R|/QImpl.data|
|
||||||
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q2|.R|/QImpl.data|.<Inapplicable(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|kotlin/Int.inc|()
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
|
!=(R|<local>/q2|.R|/QImpl.data|, Null(null)) -> {
|
||||||
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
|
R|<local>/q2|.R|/QImpl.data|.R|/MyData.s|
|
||||||
@@ -216,8 +216,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/QImplWithCustomGetter.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/QImplWithCustomGetter.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/QImplWithCustomGetter.data|
|
R|<local>/q|.R|/QImplWithCustomGetter.data|
|
||||||
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/QImplWithCustomGetter.data|.<Inapplicable(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|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,8 +226,8 @@ FILE: nullability.kt
|
|||||||
when () {
|
when () {
|
||||||
!=(R|<local>/q|?.{ $subj$.R|/QImplMutable.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
!=(R|<local>/q|?.{ $subj$.R|/QImplMutable.data| }?.{ $subj$.R|/MyData.s| }?.{ $subj$.R|kotlin/Int.inc|() }, Null(null)) -> {
|
||||||
R|<local>/q|.R|/QImplMutable.data|
|
R|<local>/q|.R|/QImplMutable.data|
|
||||||
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(WRONG_RECEIVER): /MyData.s>#
|
R|<local>/q|.R|/QImplMutable.data|.<Inapplicable(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|kotlin/Int.inc|()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ FILE: orInWhenBranch.kt
|
|||||||
public final fun test_1(a: R|kotlin/Any?|): R|kotlin/Unit| {
|
public final fun test_1(a: R|kotlin/Any?|): R|kotlin/Unit| {
|
||||||
when (R|<local>/a|) {
|
when (R|<local>/a|) {
|
||||||
($subj$ is R|kotlin/String|) || ($subj$ is R|kotlin/Any|) -> {
|
($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| {
|
public final fun test_2(a: R|kotlin/Any?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
(R|<local>/a| is R|kotlin/String|) || (R|<local>/a| is R|kotlin/Any|) -> {
|
(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| {
|
public final fun test_3(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when (R|<local>/a|) {
|
when (R|<local>/a|) {
|
||||||
($subj$ is R|kotlin/String|) || ==($subj$, R|<local>/b|) -> {
|
($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| {
|
public final fun test_4(a: R|kotlin/Any?|, b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
(R|<local>/a| is R|kotlin/String|) || R|<local>/b| -> {
|
(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
|
color=blue
|
||||||
21 [label="Enter block"];
|
21 [label="Enter block"];
|
||||||
22 [label="Access variable R|<local>/s|"];
|
22 [label="Access variable R|<local>/s|"];
|
||||||
23 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
23 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
24 [label="Exit block"];
|
24 [label="Exit block"];
|
||||||
}
|
}
|
||||||
25 [label="Exit when branch result"];
|
25 [label="Exit when branch result"];
|
||||||
@@ -131,7 +131,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
49 [label="Enter block"];
|
49 [label="Enter block"];
|
||||||
50 [label="Access variable R|<local>/s|"];
|
50 [label="Access variable R|<local>/s|"];
|
||||||
51 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
51 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
52 [label="Exit block"];
|
52 [label="Exit block"];
|
||||||
}
|
}
|
||||||
53 [label="Exit when branch result"];
|
53 [label="Exit when branch result"];
|
||||||
@@ -217,7 +217,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
83 [label="Enter block"];
|
83 [label="Enter block"];
|
||||||
84 [label="Access variable R|<local>/s|"];
|
84 [label="Access variable R|<local>/s|"];
|
||||||
85 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
85 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
86 [label="Exit block"];
|
86 [label="Exit block"];
|
||||||
}
|
}
|
||||||
87 [label="Exit when branch result"];
|
87 [label="Exit when branch result"];
|
||||||
@@ -294,7 +294,7 @@ digraph safeCallAndEqualityToBool_kt {
|
|||||||
color=blue
|
color=blue
|
||||||
111 [label="Enter block"];
|
111 [label="Enter block"];
|
||||||
112 [label="Access variable R|<local>/s|"];
|
112 [label="Access variable R|<local>/s|"];
|
||||||
113 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
113 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
114 [label="Exit block"];
|
114 [label="Exit block"];
|
||||||
}
|
}
|
||||||
115 [label="Exit when branch result"];
|
115 [label="Exit when branch result"];
|
||||||
|
|||||||
Vendored
+4
-4
@@ -8,7 +8,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.<Inapplicable(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|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
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| {
|
public final fun test_3(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
|
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(true)) -> {
|
||||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
@@ -38,7 +38,7 @@ FILE: safeCallAndEqualityToBool.kt
|
|||||||
public final fun test_4(s: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test_4(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
|
!=(R|<local>/s|?.{ $subj$.R|/check|() }, Boolean(false)) -> {
|
||||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
|
|||||||
+3
-3
@@ -53,7 +53,7 @@ digraph safeCalls_kt {
|
|||||||
19 [label="Function call: $subj$.R|/foo|(...)"];
|
19 [label="Function call: $subj$.R|/foo|(...)"];
|
||||||
20 [label="Exit safe call"];
|
20 [label="Exit safe call"];
|
||||||
21 [label="Access variable R|<local>/x|"];
|
21 [label="Access variable R|<local>/x|"];
|
||||||
22 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
22 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
23 [label="Exit block"];
|
23 [label="Exit block"];
|
||||||
}
|
}
|
||||||
24 [label="Exit function test" style="filled" fillcolor=red];
|
24 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
@@ -208,7 +208,7 @@ digraph safeCalls_kt {
|
|||||||
78 [label="Function call: $subj$.R|/A.bool|()"];
|
78 [label="Function call: $subj$.R|/A.bool|()"];
|
||||||
79 [label="Exit safe call"];
|
79 [label="Exit safe call"];
|
||||||
80 [label="Access variable R|<local>/x|"];
|
80 [label="Access variable R|<local>/x|"];
|
||||||
81 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
|
81 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()"];
|
||||||
82 [label="Exit block"];
|
82 [label="Exit block"];
|
||||||
}
|
}
|
||||||
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
83 [label="Exit function test_4" style="filled" fillcolor=red];
|
||||||
@@ -272,7 +272,7 @@ digraph safeCalls_kt {
|
|||||||
101 [label="Function call: $subj$.R|/boo|(...)"];
|
101 [label="Function call: $subj$.R|/boo|(...)"];
|
||||||
102 [label="Exit safe call"];
|
102 [label="Exit safe call"];
|
||||||
103 [label="Access variable R|<local>/x|"];
|
103 [label="Access variable R|<local>/x|"];
|
||||||
104 [label="Function call: R|<local>/x|.<Inapplicable(WRONG_RECEIVER): /A.id>#()"];
|
104 [label="Function call: R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.id>#()"];
|
||||||
105 [label="Exit block"];
|
105 [label="Exit block"];
|
||||||
}
|
}
|
||||||
106 [label="Exit function test_5" style="filled" fillcolor=red];
|
106 [label="Exit function test_5" style="filled" fillcolor=red];
|
||||||
|
|||||||
+3
-3
@@ -6,7 +6,7 @@ FILE: safeCalls.kt
|
|||||||
}
|
}
|
||||||
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
public final fun test(x: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
R|<local>/x|?.{ $subj$.R|/foo|(==(R|<local>/x|.R|kotlin/String.length|, Int(1))) }
|
||||||
R|<local>/x|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/x|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
public abstract interface A : R|kotlin/Any| {
|
public abstract interface A : R|kotlin/Any| {
|
||||||
public abstract fun bar(a: R|A|): R|kotlin/String|
|
public abstract fun bar(a: R|A|): R|kotlin/String|
|
||||||
@@ -28,7 +28,7 @@ FILE: safeCalls.kt
|
|||||||
}
|
}
|
||||||
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
public final fun test_4(x: R|A?|): R|kotlin/Unit| {
|
||||||
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
R|<local>/x|?.{ $subj$.R|/A.id|() }?.{ $subj$.R|/A.bool|() }
|
||||||
R|<local>/x|.<Inapplicable(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| {
|
public final fun R|kotlin/Any?|.boo(b: R|kotlin/Boolean|): R|kotlin/Unit| {
|
||||||
}
|
}
|
||||||
@@ -37,5 +37,5 @@ FILE: safeCalls.kt
|
|||||||
^test_5 Unit
|
^test_5 Unit
|
||||||
}
|
}
|
||||||
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
) }?.{ $subj$.R|/boo|(R|<local>/x|.R|/A.bool|()) }
|
||||||
R|<local>/x|.<Inapplicable(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"];
|
32 [label="Exit when"];
|
||||||
}
|
}
|
||||||
33 [label="Access variable R|<local>/a|"];
|
33 [label="Access variable R|<local>/a|"];
|
||||||
34 [label="Function call: R|<local>/a|.<Inapplicable(WRONG_RECEIVER): /A.foo>#()"];
|
34 [label="Function call: R|<local>/a|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): /A.foo>#()"];
|
||||||
35 [label="Exit block"];
|
35 [label="Exit block"];
|
||||||
}
|
}
|
||||||
36 [label="Exit function test" style="filled" fillcolor=red];
|
36 [label="Exit function test" style="filled" fillcolor=red];
|
||||||
|
|||||||
+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)"];
|
40 [label="Const: Null(null)"];
|
||||||
41 [label="Assignment: R|<local>/x|"];
|
41 [label="Assignment: R|<local>/x|"];
|
||||||
42 [label="Access variable R|<local>/x|"];
|
42 [label="Access variable R|<local>/x|"];
|
||||||
43 [label="Access variable <Inapplicable(WRONG_RECEIVER): kotlin/String.length>#"];
|
43 [label="Access variable <Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#"];
|
||||||
44 [label="Exit block"];
|
44 [label="Exit block"];
|
||||||
}
|
}
|
||||||
45 [label="Exit function test_3" style="filled" fillcolor=red];
|
45 [label="Exit function test_3" style="filled" fillcolor=red];
|
||||||
|
|||||||
Vendored
+1
-1
@@ -19,5 +19,5 @@ FILE: smartcastAfterReassignment.kt
|
|||||||
R|<local>/x| = String()
|
R|<local>/x| = String()
|
||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
R|<local>/x| = Null(null)
|
R|<local>/x| = Null(null)
|
||||||
R|<local>/x|.<Inapplicable(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| {
|
public final fun test_2(s: R|kotlin/String?|): R|kotlin/Unit| {
|
||||||
when () {
|
when () {
|
||||||
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
R|<local>/s|.R|kotlin/text/isNullOrEmpty|() -> {
|
||||||
R|<local>/s|.<Inapplicable(WRONG_RECEIVER): kotlin/String.length>#
|
R|<local>/s|.<Inapplicable(INAPPLICABLE_WRONG_RECEIVER): kotlin/String.length>#
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/s|.R|kotlin/String.length|
|
R|<local>/s|.R|kotlin/String.length|
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ FILE: eqNotEq.kt
|
|||||||
R|<local>/x|.R|kotlin/String.length|
|
R|<local>/x|.R|kotlin/String.length|
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
R|<local>/x|.<Inapplicable(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|()
|
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| {
|
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> {
|
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.FirDiagnosticFactory0
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirErrorFunction
|
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.*
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
import org.jetbrains.kotlin.fir.expressions.FirErrorExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorLoop
|
import org.jetbrains.kotlin.fir.expressions.FirErrorLoop
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirErrorResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirErrorResolvedQualifier
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
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.resolve.diagnostics.*
|
||||||
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
import org.jetbrains.kotlin.fir.types.FirErrorTypeRef
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||||
|
|
||||||
class ErrorNodeDiagnosticCollectorComponent(collector: AbstractDiagnosticCollector) : AbstractDiagnosticCollectorComponent(collector) {
|
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.inference.ConstraintSystemBuilder
|
||||||
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
|
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
|
||||||
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.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
class FirCallResolver(
|
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.ConstraintSystemBuilder
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.addSubtypeConstraintIfCompatible
|
import org.jetbrains.kotlin.resolve.calls.inference.addSubtypeConstraintIfCompatible
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
import org.jetbrains.kotlin.types.model.CaptureStatus
|
import org.jetbrains.kotlin.types.model.CaptureStatus
|
||||||
|
|
||||||
fun Candidate.resolveArgumentExpression(
|
fun Candidate.resolveArgumentExpression(
|
||||||
@@ -264,7 +265,7 @@ private fun checkApplicabilityForArgumentType(
|
|||||||
if (expectedType == null) return
|
if (expectedType == null) return
|
||||||
if (isReceiver && isDispatch) {
|
if (isReceiver && isDispatch) {
|
||||||
if (!expectedType.isNullable && argumentType.isMarkedNullable) {
|
if (!expectedType.isNullable && argumentType.isMarkedNullable) {
|
||||||
sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER)
|
sink.reportApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -277,10 +278,10 @@ private fun checkApplicabilityForArgumentType(
|
|||||||
val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, sink.components.session.typeContext)
|
val nullableExpectedType = expectedType.withNullability(ConeNullability.NULLABLE, sink.components.session.typeContext)
|
||||||
|
|
||||||
if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) {
|
if (csBuilder.addSubtypeConstraintIfCompatible(argumentType, nullableExpectedType, position)) {
|
||||||
sink.reportApplicability(CandidateApplicability.WRONG_RECEIVER) // TODO
|
sink.reportApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER) // TODO
|
||||||
} else {
|
} else {
|
||||||
csBuilder.addSubtypeConstraint(argumentType, expectedType, position)
|
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(
|
class Candidate(
|
||||||
val symbol: AbstractFirBasedSymbol<*>,
|
val symbol: AbstractFirBasedSymbol<*>,
|
||||||
val dispatchReceiverValue: ReceiverValue?,
|
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.BodyResolveComponents
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.tower.TowerGroup
|
import org.jetbrains.kotlin.fir.resolve.calls.tower.TowerGroup
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
open class CandidateCollector(
|
open class CandidateCollector(
|
||||||
val components: BodyResolveComponents,
|
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.PrivateForInline
|
||||||
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
import kotlin.coroutines.Continuation
|
import kotlin.coroutines.Continuation
|
||||||
|
|
||||||
abstract class CheckerSink {
|
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.fir.types.impl.FirTypePlaceholderProjection
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemOperation
|
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemOperation
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
internal object CreateFreshTypeVariableSubstitutorStage : ResolutionStage() {
|
internal object CreateFreshTypeVariableSubstitutorStage : ResolutionStage() {
|
||||||
override suspend fun check(candidate: Candidate, sink: CheckerSink, callInfo: CallInfo) {
|
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.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
abstract class ResolutionDiagnostic(val applicability: CandidateApplicability)
|
abstract class ResolutionDiagnostic(val applicability: CandidateApplicability)
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ class MixingNamedAndPositionArguments(override val argument: FirExpression) : In
|
|||||||
class TooManyArguments(
|
class TooManyArguments(
|
||||||
val argument: FirExpression,
|
val argument: FirExpression,
|
||||||
val function: FirFunction<*>
|
val function: FirFunction<*>
|
||||||
) : ResolutionDiagnostic(CandidateApplicability.PARAMETER_MAPPING_ERROR)
|
) : ResolutionDiagnostic(CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR)
|
||||||
|
|
||||||
class NamedArgumentNotAllowed(
|
class NamedArgumentNotAllowed(
|
||||||
override val argument: FirExpression,
|
override val argument: FirExpression,
|
||||||
@@ -43,7 +44,7 @@ class NonVarargSpread(override val argument: FirExpression) : InapplicableArgume
|
|||||||
class NoValueForParameter(
|
class NoValueForParameter(
|
||||||
val valueParameter: FirValueParameter,
|
val valueParameter: FirValueParameter,
|
||||||
val function: FirFunction<*>
|
val function: FirFunction<*>
|
||||||
) : ResolutionDiagnostic(CandidateApplicability.PARAMETER_MAPPING_ERROR)
|
) : ResolutionDiagnostic(CandidateApplicability.INAPPLICABLE_ARGUMENTS_MAPPING_ERROR)
|
||||||
|
|
||||||
class NameNotFound(
|
class NameNotFound(
|
||||||
override val argument: FirExpression,
|
override val argument: FirExpression,
|
||||||
|
|||||||
+1
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.calls
|
package org.jetbrains.kotlin.fir.resolve.calls
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
import org.jetbrains.kotlin.fir.resolve.inference.InferenceComponents
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
import kotlin.coroutines.Continuation
|
import kotlin.coroutines.Continuation
|
||||||
import kotlin.coroutines.CoroutineContext
|
import kotlin.coroutines.CoroutineContext
|
||||||
import kotlin.coroutines.EmptyCoroutineContext
|
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.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.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
|
import org.jetbrains.kotlin.utils.addToStdlib.min
|
||||||
|
|
||||||
|
|
||||||
@@ -45,17 +46,17 @@ internal object CheckExplicitReceiverConsistency : ResolutionStage() {
|
|||||||
when (receiverKind) {
|
when (receiverKind) {
|
||||||
NO_EXPLICIT_RECEIVER -> {
|
NO_EXPLICIT_RECEIVER -> {
|
||||||
if (explicitReceiver != null && explicitReceiver !is FirResolvedQualifier && !explicitReceiver.isSuperReferenceExpression()) {
|
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 -> {
|
EXTENSION_RECEIVER, DISPATCH_RECEIVER -> {
|
||||||
if (explicitReceiver == null) {
|
if (explicitReceiver == null) {
|
||||||
return sink.yieldApplicability(CandidateApplicability.WRONG_RECEIVER)
|
return sink.yieldApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BOTH_RECEIVERS -> {
|
BOTH_RECEIVERS -> {
|
||||||
if (explicitReceiver == null) {
|
if (explicitReceiver == null) {
|
||||||
return sink.yieldApplicability(CandidateApplicability.WRONG_RECEIVER)
|
return sink.yieldApplicability(CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER)
|
||||||
}
|
}
|
||||||
// Here we should also check additional invoke 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.declarations.FirTypeParameterRefsOwner
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.impl.FirTypePlaceholderProjection
|
import org.jetbrains.kotlin.fir.types.impl.FirTypePlaceholderProjection
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
sealed class TypeArgumentMapping {
|
sealed class TypeArgumentMapping {
|
||||||
abstract operator fun get(typeParameterIndex: Int): FirTypeProjection
|
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.diagnostics.ConeDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
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.AbstractFirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
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.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError
|
import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintSystemError
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
class ConeUnresolvedReferenceError(val name: Name? = null) : ConeDiagnostic() {
|
class ConeUnresolvedReferenceError(val name: Name? = null) : ConeDiagnostic() {
|
||||||
override val reason: String get() = "Unresolved reference" + if (name != null) ": ${name.asString()}" else ""
|
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.ConstraintSystemBuilder
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.model.CoroutinePosition
|
import org.jetbrains.kotlin.resolve.calls.inference.model.CoroutinePosition
|
||||||
import org.jetbrains.kotlin.resolve.calls.inference.model.SimpleConstraintSystemConstraintPosition
|
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.StubTypeMarker
|
||||||
import org.jetbrains.kotlin.types.model.TypeVariableMarker
|
import org.jetbrains.kotlin.types.model.TypeVariableMarker
|
||||||
import org.jetbrains.kotlin.types.model.freshTypeConstructor
|
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.expressions.FirStatement
|
||||||
import org.jetbrains.kotlin.fir.resolve.DoubleColonLHS
|
import org.jetbrains.kotlin.fir.resolve.DoubleColonLHS
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
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.StandardClassIds
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
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.FirTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker
|
import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
// --------------------------- Variables ---------------------------
|
// --------------------------- Variables ---------------------------
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -6,8 +6,8 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
import org.jetbrains.kotlin.fir.declarations.builder.FirSimpleFunctionBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.builder.buildTypeParameter
|
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.fir.visitors.compose
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
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.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
|
|
||||||
class FirSyntheticCallGenerator(
|
class FirSyntheticCallGenerator(
|
||||||
|
|||||||
+1
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.fir.types.builder.*
|
|||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) : FirPartialBodyResolveTransformer(transformer) {
|
open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) : FirPartialBodyResolveTransformer(transformer) {
|
||||||
private inline val builtinTypes: BuiltinTypes get() = session.builtinTypes
|
private inline val builtinTypes: BuiltinTypes get() = session.builtinTypes
|
||||||
|
|||||||
+5
-1
@@ -18,7 +18,11 @@ enum class CandidateApplicability {
|
|||||||
RESOLVED_LOW_PRIORITY,
|
RESOLVED_LOW_PRIORITY,
|
||||||
RESOLVED_NEED_PRESERVE_COMPATIBILITY, // call resolved successfully, but using new features that changes resolve
|
RESOLVED_NEED_PRESERVE_COMPATIBILITY, // call resolved successfully, but using new features that changes resolve
|
||||||
RESOLVED_WITH_ERROR, // call has error, but it is still successful from resolution perspective
|
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
|
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
|
FUN name:testSimpleAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||||
BLOCK_BODY
|
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=1
|
||||||
CONST Int type=kotlin.Int value=2
|
CONST Int type=kotlin.Int value=2
|
||||||
CONST Int type=kotlin.Int value=3
|
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
|
FUN name:testSimpleAssignment visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Unit
|
||||||
VALUE_PARAMETER name:a index:0 type:<root>.A
|
VALUE_PARAMETER name:a index:0 type:<root>.A
|
||||||
BLOCK_BODY
|
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=1
|
||||||
CONST Int type=kotlin.Int value=0
|
CONST Int type=kotlin.Int value=0
|
||||||
FUN name:testPostfixIncrement visibility:public modality:FINAL <> (a:<root>.A) returnType:kotlin.Int
|
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
|
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
|
$receiver: GET_VAR 'a: <root>.A declared in <root>.testPostfixIncrement' type=<root>.A origin=null
|
||||||
i: CONST Int type=kotlin.Int value=1
|
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
|
CONST Int type=kotlin.Int value=1
|
||||||
CALL 'public final fun inc (): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
|
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
|
$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
|
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]
|
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.Int [val]
|
||||||
CONST Int type=kotlin.Int value=1
|
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
|
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
|
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
|
$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.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
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.expressions.builder.buildFunctionCall
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.*
|
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.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
import org.jetbrains.kotlin.fir.types.FirTypeProjection
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
|
||||||
|
|
||||||
class SingleCandidateResolver(
|
class SingleCandidateResolver(
|
||||||
private val firSession: FirSession,
|
private val firSession: FirSession,
|
||||||
|
|||||||
Reference in New Issue
Block a user