[FIR] Add equality constraint from expected type for some synthetic function calls

This fixes some cases where we infer some type variable inside one
of the branches to Nothing instead of the expected type because Nothing
appeared in some other branch.

Specifically, we add an equality instead of a subtype constraint during
completion of calls to synthetic functions for if/when, try and !!.
We don't do it when the call contains a (possibly nested) elvis or is
inside the RHS of an assignment.
Otherwise, we would prevent some smart-casts.

#KT-65882 Fixed
This commit is contained in:
Kirill Rakhman
2024-02-21 16:06:47 +01:00
committed by Space Team
parent eaef7122f6
commit 69a7bf7f68
106 changed files with 1441 additions and 578 deletions
@@ -16652,6 +16652,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt"); runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt");
} }
@Test
@TestMetadata("checkNotNullWithNullableExpectedType.kt")
public void testCheckNotNullWithNullableExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt");
}
@Test @Test
@TestMetadata("coerceFunctionLiteralToSuspend.kt") @TestMetadata("coerceFunctionLiteralToSuspend.kt")
public void testCoerceFunctionLiteralToSuspend() { public void testCoerceFunctionLiteralToSuspend() {
@@ -17174,6 +17180,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt"); runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt");
} }
@Test
@TestMetadata("nestedIfWithExpectedType.kt")
public void testNestedIfWithExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt");
}
@Test @Test
@TestMetadata("NoInferenceFromDeclaredBounds.kt") @TestMetadata("NoInferenceFromDeclaredBounds.kt")
public void testNoInferenceFromDeclaredBounds() { public void testNoInferenceFromDeclaredBounds() {
@@ -18982,6 +18994,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
public void testWrongApproximationWithDefNotNullTypesAndDelegates() { public void testWrongApproximationWithDefNotNullTypesAndDelegates() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt"); runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt");
} }
@Test
@TestMetadata("wrongExpectedTypeForWhen.kt")
public void testWrongExpectedTypeForWhen() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongExpectedTypeForWhen.kt");
}
} }
@Nested @Nested
@@ -23888,6 +23888,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -16652,6 +16652,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt"); runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt");
} }
@Test
@TestMetadata("checkNotNullWithNullableExpectedType.kt")
public void testCheckNotNullWithNullableExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt");
}
@Test @Test
@TestMetadata("coerceFunctionLiteralToSuspend.kt") @TestMetadata("coerceFunctionLiteralToSuspend.kt")
public void testCoerceFunctionLiteralToSuspend() { public void testCoerceFunctionLiteralToSuspend() {
@@ -17174,6 +17180,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt"); runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt");
} }
@Test
@TestMetadata("nestedIfWithExpectedType.kt")
public void testNestedIfWithExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt");
}
@Test @Test
@TestMetadata("NoInferenceFromDeclaredBounds.kt") @TestMetadata("NoInferenceFromDeclaredBounds.kt")
public void testNoInferenceFromDeclaredBounds() { public void testNoInferenceFromDeclaredBounds() {
@@ -18982,6 +18994,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
public void testWrongApproximationWithDefNotNullTypesAndDelegates() { public void testWrongApproximationWithDefNotNullTypesAndDelegates() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt"); runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt");
} }
@Test
@TestMetadata("wrongExpectedTypeForWhen.kt")
public void testWrongExpectedTypeForWhen() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongExpectedTypeForWhen.kt");
}
} }
@Nested @Nested
@@ -23888,6 +23888,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -7,7 +7,7 @@ class Qux<T1, T2: Baz<T2, <!UPPER_BOUND_VIOLATED!>Bar<Foo, T2><!>>>(var f: T2)
class Quux<T> { class Quux<T> {
fun test(): Unit { fun test(): Unit {
val x: Qux<in T, <!UPPER_BOUND_VIOLATED!>Baz<T, <!UPPER_BOUND_VIOLATED!>Bar<Foo, <!CONFLICTING_PROJECTION!>in<!> T><!>><!>> = null!! val x: Qux<in T, <!UPPER_BOUND_VIOLATED!>Baz<T, <!UPPER_BOUND_VIOLATED!>Bar<Foo, <!CONFLICTING_PROJECTION!>in<!> T><!>><!>> = <!INITIALIZER_TYPE_MISMATCH!>null!!<!>
x.f = null!! x.f = null!!
} }
} }
@@ -112,173 +112,173 @@ digraph smartcastToNothing_kt {
35 [label="Enter block"]; 35 [label="Enter block"];
36 [label="Const: Null(null)"]; 36 [label="Const: Null(null)"];
37 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow]; 37 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
38 [label="Stub" style="filled" fillcolor=gray]; 38 [label="Jump: ^myListOf Null(null)!!"];
39 [label="Jump: ^myListOf Null(null)!!" style="filled" fillcolor=gray]; 39 [label="Stub" style="filled" fillcolor=gray];
40 [label="Stub" style="filled" fillcolor=gray]; 40 [label="Exit block" style="filled" fillcolor=gray];
41 [label="Exit block" style="filled" fillcolor=gray];
} }
42 [label="Exit function myListOf" style="filled" fillcolor=gray]; 41 [label="Exit function myListOf" style="filled" fillcolor=red];
} }
34 -> {35}; 34 -> {35};
35 -> {36}; 35 -> {36};
36 -> {37}; 36 -> {37};
37 -> {38} [style=dotted]; 37 -> {38};
38 -> {41};
38 -> {39} [style=dotted]; 38 -> {39} [style=dotted];
39 -> {40 42} [style=dotted]; 39 -> {40} [style=dotted];
40 -> {41} [style=dotted]; 40 -> {41} [style=dotted];
41 -> {42} [style=dotted];
subgraph cluster_12 { subgraph cluster_12 {
color=red color=red
43 [label="Enter class A" style="filled" fillcolor=red]; 42 [label="Enter class A" style="filled" fillcolor=red];
subgraph cluster_13 { subgraph cluster_13 {
color=blue color=blue
44 [label="Enter function <init>" style="filled" fillcolor=red]; 43 [label="Enter function <init>" style="filled" fillcolor=red];
45 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow]; 44 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
46 [label="Exit function <init>" style="filled" fillcolor=red]; 45 [label="Exit function <init>" style="filled" fillcolor=red];
} }
subgraph cluster_14 { subgraph cluster_14 {
color=blue color=blue
47 [label="Enter property" style="filled" fillcolor=red]; 46 [label="Enter property" style="filled" fillcolor=red];
48 [label="Const: Int(1)"]; 47 [label="Const: Int(1)"];
49 [label="Exit property" style="filled" fillcolor=red]; 48 [label="Exit property" style="filled" fillcolor=red];
} }
subgraph cluster_15 { subgraph cluster_15 {
color=blue color=blue
50 [label="Enter property" style="filled" fillcolor=red]; 49 [label="Enter property" style="filled" fillcolor=red];
51 [label="Const: Boolean(true)"]; 50 [label="Const: Boolean(true)"];
52 [label="Exit property" style="filled" fillcolor=red]; 51 [label="Exit property" style="filled" fillcolor=red];
} }
53 [label="Exit class A" style="filled" fillcolor=red]; 52 [label="Exit class A" style="filled" fillcolor=red];
} }
43 -> {44} [color=green]; 42 -> {43} [color=green];
43 -> {53} [style=dotted]; 42 -> {52} [style=dotted];
43 -> {44 47 50} [style=dashed]; 42 -> {43 46 49} [style=dashed];
43 -> {44};
44 -> {45}; 44 -> {45};
45 -> {46}; 45 -> {46} [color=green];
46 -> {47} [color=green]; 46 -> {47};
47 -> {48}; 47 -> {48};
48 -> {49}; 48 -> {49} [color=green];
49 -> {50} [color=green]; 49 -> {50};
50 -> {51}; 50 -> {51};
51 -> {52}; 51 -> {52} [color=green];
52 -> {53} [color=green];
subgraph cluster_16 { subgraph cluster_16 {
color=red color=red
54 [label="Enter function test_0" style="filled" fillcolor=red]; 53 [label="Enter function test_0" style="filled" fillcolor=red];
subgraph cluster_17 { subgraph cluster_17 {
color=blue color=blue
55 [label="Enter block"]; 54 [label="Enter block"];
56 [label="Const: Null(null)"]; 55 [label="Const: Null(null)"];
57 [label="Variable declaration: lvar s: R|A?|"]; 56 [label="Variable declaration: lvar s: R|A?|"];
subgraph cluster_18 { subgraph cluster_18 {
color=blue color=blue
58 [label="Enter block"]; 57 [label="Enter block"];
subgraph cluster_19 { subgraph cluster_19 {
color=blue color=blue
59 [label="Function call arguments enter"]; 58 [label="Function call arguments enter"];
60 [label="Access variable R|<local>/results|"]; 59 [label="Access variable R|<local>/results|"];
61 [label="Function call arguments exit"]; 60 [label="Function call arguments exit"];
} }
62 [label="Function call: R|<local>/results|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Nothing>|>|()" style="filled" fillcolor=yellow]; 61 [label="Function call: R|<local>/results|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<kotlin/Nothing>|>|()" style="filled" fillcolor=yellow];
63 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Nothing>|"]; 62 [label="Variable declaration: lval <iterator>: R|kotlin/collections/Iterator<kotlin/Nothing>|"];
subgraph cluster_20 { subgraph cluster_20 {
color=blue color=blue
64 [label="Enter while loop"]; 63 [label="Enter while loop"];
subgraph cluster_21 { subgraph cluster_21 {
color=blue color=blue
65 [label="Enter loop condition"]; 64 [label="Enter loop condition"];
subgraph cluster_22 { subgraph cluster_22 {
color=blue color=blue
66 [label="Function call arguments enter"]; 65 [label="Function call arguments enter"];
67 [label="Access variable R|<local>/<iterator>|"]; 66 [label="Access variable R|<local>/<iterator>|"];
68 [label="Function call arguments exit"]; 67 [label="Function call arguments exit"];
} }
69 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow]; 68 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()" style="filled" fillcolor=yellow];
70 [label="Exit loop condition"]; 69 [label="Exit loop condition"];
} }
subgraph cluster_23 { subgraph cluster_23 {
color=blue color=blue
71 [label="Enter loop block"]; 70 [label="Enter loop block"];
subgraph cluster_24 { subgraph cluster_24 {
color=blue color=blue
72 [label="Enter block"]; 71 [label="Enter block"];
subgraph cluster_25 { subgraph cluster_25 {
color=blue color=blue
73 [label="Function call arguments enter"]; 72 [label="Function call arguments enter"];
74 [label="Access variable R|<local>/<iterator>|"]; 73 [label="Access variable R|<local>/<iterator>|"];
75 [label="Function call arguments exit"]; 74 [label="Function call arguments exit"];
} }
76 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Nothing|>|()" style="filled" fillcolor=yellow]; 75 [label="Function call: R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|kotlin/Nothing|>|()" style="filled" fillcolor=yellow];
77 [label="Stub" style="filled" fillcolor=gray]; 76 [label="Stub" style="filled" fillcolor=gray];
78 [label="Variable declaration: lval result: R|kotlin/Nothing|" style="filled" fillcolor=gray]; 77 [label="Variable declaration: lval result: R|kotlin/Nothing|" style="filled" fillcolor=gray];
subgraph cluster_26 { subgraph cluster_26 {
color=blue color=blue
79 [label="Enter block" style="filled" fillcolor=gray]; 78 [label="Enter block" style="filled" fillcolor=gray];
80 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray]; 79 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
81 [label="Stub" style="filled" fillcolor=gray]; 80 [label="Stub" style="filled" fillcolor=gray];
82 [label="Assignment: R|<local>/s|" style="filled" fillcolor=gray]; 81 [label="Assignment: R|<local>/s|" style="filled" fillcolor=gray];
subgraph cluster_27 { subgraph cluster_27 {
color=blue color=blue
83 [label="Enter when" style="filled" fillcolor=gray]; 82 [label="Enter when" style="filled" fillcolor=gray];
subgraph cluster_28 { subgraph cluster_28 {
color=blue color=blue
84 [label="Enter when branch condition " style="filled" fillcolor=gray]; 83 [label="Enter when branch condition " style="filled" fillcolor=gray];
85 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray]; 84 [label="Access variable R|<local>/result|" style="filled" fillcolor=gray];
86 [label="Stub" style="filled" fillcolor=gray]; 85 [label="Stub" style="filled" fillcolor=gray];
87 [label="Access variable <Unresolved name: b>#" style="filled" fillcolor=gray]; 86 [label="Access variable <Unresolved name: b>#" style="filled" fillcolor=gray];
88 [label="Exit when branch condition" style="filled" fillcolor=gray]; 87 [label="Exit when branch condition" style="filled" fillcolor=gray];
} }
89 [label="Synthetic else branch" style="filled" fillcolor=gray]; 88 [label="Synthetic else branch" style="filled" fillcolor=gray];
90 [label="Enter when branch result" style="filled" fillcolor=gray]; 89 [label="Enter when branch result" style="filled" fillcolor=gray];
subgraph cluster_29 { subgraph cluster_29 {
color=blue color=blue
91 [label="Enter block" style="filled" fillcolor=gray]; 90 [label="Enter block" style="filled" fillcolor=gray];
92 [label="Jump: break@@@[R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()] " style="filled" fillcolor=gray]; 91 [label="Jump: break@@@[R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.hasNext: R|kotlin/Boolean|>|()] " style="filled" fillcolor=gray];
93 [label="Stub" style="filled" fillcolor=gray]; 92 [label="Stub" style="filled" fillcolor=gray];
94 [label="Exit block" style="filled" fillcolor=gray]; 93 [label="Exit block" style="filled" fillcolor=gray];
} }
95 [label="Exit when branch result" style="filled" fillcolor=gray]; 94 [label="Exit when branch result" style="filled" fillcolor=gray];
96 [label="Exit when" style="filled" fillcolor=gray]; 95 [label="Exit when" style="filled" fillcolor=gray];
} }
97 [label="Exit block" style="filled" fillcolor=gray]; 96 [label="Exit block" style="filled" fillcolor=gray];
} }
98 [label="Exit block" style="filled" fillcolor=gray]; 97 [label="Exit block" style="filled" fillcolor=gray];
} }
99 [label="Exit loop block" style="filled" fillcolor=gray]; 98 [label="Exit loop block" style="filled" fillcolor=gray];
} }
100 [label="Exit while loop"]; 99 [label="Exit while loop"];
} }
101 [label="Exit block"]; 100 [label="Exit block"];
} }
102 [label="Access variable R|<local>/s|"]; 101 [label="Access variable R|<local>/s|"];
103 [label="Enter safe call"]; 102 [label="Enter safe call"];
subgraph cluster_30 { subgraph cluster_30 {
color=blue color=blue
104 [label="Function call arguments enter"]; 103 [label="Function call arguments enter"];
105 [label="Postponed enter to lambda"]; 104 [label="Postponed enter to lambda"];
subgraph cluster_31 { subgraph cluster_31 {
color=blue color=blue
106 [label="Enter function <anonymous>" style="filled" fillcolor=red]; 105 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_32 { subgraph cluster_32 {
color=blue color=blue
107 [label="Enter block"]; 106 [label="Enter block"];
108 [label="Access variable R|<local>/it|"]; 107 [label="Access variable R|<local>/it|"];
109 [label="Access variable R|/A.a|"]; 108 [label="Access variable R|/A.a|"];
110 [label="Exit block"]; 109 [label="Exit block"];
} }
111 [label="Exit function <anonymous>" style="filled" fillcolor=red]; 110 [label="Exit function <anonymous>" style="filled" fillcolor=red];
} }
112 [label="Function call arguments exit"]; 111 [label="Function call arguments exit"];
} }
113 [label="Postponed exit from lambda"]; 112 [label="Postponed exit from lambda"];
114 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(...)" style="filled" fillcolor=yellow]; 113 [label="Function call: $subj$.R|kotlin/let|<R|A|, R|kotlin/Int|>(...)" style="filled" fillcolor=yellow];
115 [label="Exit safe call"]; 114 [label="Exit safe call"];
116 [label="Exit block"]; 115 [label="Exit block"];
} }
117 [label="Exit function test_0" style="filled" fillcolor=red]; 116 [label="Exit function test_0" style="filled" fillcolor=red];
} }
53 -> {54};
54 -> {55}; 54 -> {55};
55 -> {56}; 55 -> {56};
56 -> {57}; 56 -> {57};
@@ -294,13 +294,13 @@ digraph smartcastToNothing_kt {
66 -> {67}; 66 -> {67};
67 -> {68}; 67 -> {68};
68 -> {69}; 68 -> {69};
69 -> {70}; 69 -> {70 99};
70 -> {71 100}; 70 -> {71};
71 -> {72}; 71 -> {72};
72 -> {73}; 72 -> {73};
73 -> {74}; 73 -> {74};
74 -> {75}; 74 -> {75};
75 -> {76}; 75 -> {76} [style=dotted];
76 -> {77} [style=dotted]; 76 -> {77} [style=dotted];
77 -> {78} [style=dotted]; 77 -> {78} [style=dotted];
78 -> {79} [style=dotted]; 78 -> {79} [style=dotted];
@@ -312,111 +312,111 @@ digraph smartcastToNothing_kt {
84 -> {85} [style=dotted]; 84 -> {85} [style=dotted];
85 -> {86} [style=dotted]; 85 -> {86} [style=dotted];
86 -> {87} [style=dotted]; 86 -> {87} [style=dotted];
87 -> {88} [style=dotted]; 87 -> {88 89} [style=dotted];
88 -> {89 90} [style=dotted]; 88 -> {95} [style=dotted];
89 -> {96} [style=dotted]; 89 -> {90} [style=dotted];
90 -> {91} [style=dotted]; 90 -> {91} [style=dotted];
91 -> {92} [style=dotted]; 91 -> {92 99} [style=dotted];
92 -> {93 100} [style=dotted]; 92 -> {93} [style=dotted];
93 -> {94} [style=dotted]; 93 -> {94} [style=dotted];
94 -> {95} [style=dotted]; 94 -> {95} [style=dotted];
95 -> {96} [style=dotted]; 95 -> {96} [style=dotted];
96 -> {97} [style=dotted]; 96 -> {97} [style=dotted];
97 -> {98} [style=dotted]; 97 -> {98} [style=dotted];
98 -> {99} [style=dotted]; 98 -> {64} [color=green style=dotted];
99 -> {65} [color=green style=dotted]; 99 -> {100};
100 -> {101}; 100 -> {101};
101 -> {102}; 101 -> {102 114};
102 -> {103 115}; 102 -> {103};
103 -> {104}; 103 -> {104};
104 -> {105}; 104 -> {105 111};
105 -> {106 112}; 104 -> {112} [style=dotted];
105 -> {113} [style=dotted]; 104 -> {105} [style=dashed];
105 -> {106} [style=dashed]; 105 -> {106};
106 -> {107}; 106 -> {107};
107 -> {108}; 107 -> {108};
108 -> {109}; 108 -> {109};
109 -> {110}; 109 -> {110};
110 -> {111}; 110 -> {112};
111 -> {113}; 111 -> {113};
112 -> {114}; 112 -> {113} [label="Postponed"];
113 -> {114} [label="Postponed"]; 113 -> {114};
114 -> {115}; 114 -> {115};
115 -> {116}; 115 -> {116};
116 -> {117};
subgraph cluster_33 { subgraph cluster_33 {
color=red color=red
118 [label="Enter function test_1" style="filled" fillcolor=red]; 117 [label="Enter function test_1" style="filled" fillcolor=red];
subgraph cluster_34 { subgraph cluster_34 {
color=blue color=blue
119 [label="Enter block"]; 118 [label="Enter block"];
subgraph cluster_35 { subgraph cluster_35 {
color=blue color=blue
120 [label="Enter when"]; 119 [label="Enter when"];
subgraph cluster_36 { subgraph cluster_36 {
color=blue color=blue
121 [label="Enter when branch condition "]; 120 [label="Enter when branch condition "];
122 [label="Access variable R|<local>/a|"]; 121 [label="Access variable R|<local>/a|"];
123 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing?|)"]; 122 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing?|)"];
124 [label="Exit when branch condition"]; 123 [label="Exit when branch condition"];
} }
125 [label="Synthetic else branch"]; 124 [label="Synthetic else branch"];
126 [label="Enter when branch result"]; 125 [label="Enter when branch result"];
subgraph cluster_37 { subgraph cluster_37 {
color=blue color=blue
127 [label="Enter block"]; 126 [label="Enter block"];
128 [label="Access variable R|<local>/a|"]; 127 [label="Access variable R|<local>/a|"];
129 [label="Smart cast: R|<local>/a|"]; 128 [label="Smart cast: R|<local>/a|"];
130 [label="Enter safe call"]; 129 [label="Enter safe call"];
131 [label="Access variable R|kotlin/String.length|"]; 130 [label="Access variable R|kotlin/String.length|"];
132 [label="Exit safe call"]; 131 [label="Exit safe call"];
133 [label="Variable declaration: lval b: R|kotlin/Int?|"]; 132 [label="Variable declaration: lval b: R|kotlin/Int?|"];
134 [label="Exit block"]; 133 [label="Exit block"];
} }
135 [label="Exit when branch result"]; 134 [label="Exit when branch result"];
136 [label="Exit when"]; 135 [label="Exit when"];
} }
subgraph cluster_38 { subgraph cluster_38 {
color=blue color=blue
137 [label="Enter when"]; 136 [label="Enter when"];
subgraph cluster_39 { subgraph cluster_39 {
color=blue color=blue
138 [label="Enter when branch condition "]; 137 [label="Enter when branch condition "];
139 [label="Access variable R|<local>/a|"]; 138 [label="Access variable R|<local>/a|"];
140 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing|)"]; 139 [label="Type operator: (R|<local>/a| is R|kotlin/Nothing|)"];
141 [label="Exit when branch condition"]; 140 [label="Exit when branch condition"];
} }
142 [label="Synthetic else branch"]; 141 [label="Synthetic else branch"];
143 [label="Enter when branch result"]; 142 [label="Enter when branch result"];
subgraph cluster_40 { subgraph cluster_40 {
color=blue color=blue
144 [label="Enter block"]; 143 [label="Enter block"];
145 [label="Access variable R|<local>/a|"]; 144 [label="Access variable R|<local>/a|"];
146 [label="Smart cast: R|<local>/a|"]; 145 [label="Smart cast: R|<local>/a|"];
147 [label="Access variable R|kotlin/String.length|"]; 146 [label="Access variable R|kotlin/String.length|"];
148 [label="Variable declaration: lval b: R|kotlin/Int|"]; 147 [label="Variable declaration: lval b: R|kotlin/Int|"];
149 [label="Exit block"]; 148 [label="Exit block"];
} }
150 [label="Exit when branch result"]; 149 [label="Exit when branch result"];
151 [label="Exit when"]; 150 [label="Exit when"];
} }
152 [label="Exit block"]; 151 [label="Exit block"];
} }
153 [label="Exit function test_1" style="filled" fillcolor=red]; 152 [label="Exit function test_1" style="filled" fillcolor=red];
} }
117 -> {118};
118 -> {119}; 118 -> {119};
119 -> {120}; 119 -> {120};
120 -> {121}; 120 -> {121};
121 -> {122}; 121 -> {122};
122 -> {123}; 122 -> {123};
123 -> {124}; 123 -> {124 125};
124 -> {125 126}; 124 -> {135};
125 -> {136}; 125 -> {126};
126 -> {127}; 126 -> {127};
127 -> {128}; 127 -> {128};
128 -> {129}; 128 -> {129 131};
129 -> {130 132}; 129 -> {130};
130 -> {131}; 130 -> {131};
131 -> {132}; 131 -> {132};
132 -> {133}; 132 -> {133};
@@ -427,9 +427,9 @@ digraph smartcastToNothing_kt {
137 -> {138}; 137 -> {138};
138 -> {139}; 138 -> {139};
139 -> {140}; 139 -> {140};
140 -> {141}; 140 -> {141 142};
141 -> {142 143}; 141 -> {150};
142 -> {151}; 142 -> {143};
143 -> {144}; 143 -> {144};
144 -> {145}; 144 -> {145};
145 -> {146}; 145 -> {146};
@@ -439,6 +439,5 @@ digraph smartcastToNothing_kt {
149 -> {150}; 149 -> {150};
150 -> {151}; 150 -> {151};
151 -> {152}; 151 -> {152};
152 -> {153};
} }
@@ -36,178 +36,178 @@ digraph delegateWithAnonymousObject_kt {
8 [label="Enter block"]; 8 [label="Enter block"];
9 [label="Const: Null(null)"]; 9 [label="Const: Null(null)"];
10 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow]; 10 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
11 [label="Stub" style="filled" fillcolor=gray]; 11 [label="Jump: ^delegate Null(null)!!"];
12 [label="Jump: ^delegate Null(null)!!" style="filled" fillcolor=gray]; 12 [label="Stub" style="filled" fillcolor=gray];
13 [label="Stub" style="filled" fillcolor=gray]; 13 [label="Exit block" style="filled" fillcolor=gray];
14 [label="Exit block" style="filled" fillcolor=gray];
} }
15 [label="Exit function delegate" style="filled" fillcolor=gray]; 14 [label="Exit function delegate" style="filled" fillcolor=red];
} }
7 -> {8}; 7 -> {8};
8 -> {9}; 8 -> {9};
9 -> {10}; 9 -> {10};
10 -> {11} [style=dotted]; 10 -> {11};
11 -> {14};
11 -> {12} [style=dotted]; 11 -> {12} [style=dotted];
12 -> {13 15} [style=dotted]; 12 -> {13} [style=dotted];
13 -> {14} [style=dotted]; 13 -> {14} [style=dotted];
14 -> {15} [style=dotted];
subgraph cluster_5 { subgraph cluster_5 {
color=red color=red
16 [label="Enter class IssueListView" style="filled" fillcolor=red]; 15 [label="Enter class IssueListView" style="filled" fillcolor=red];
subgraph cluster_6 { subgraph cluster_6 {
color=blue color=blue
17 [label="Enter function <init>" style="filled" fillcolor=red]; 16 [label="Enter function <init>" style="filled" fillcolor=red];
18 [label="Delegated constructor call: super<R|DelegateProvider<IssueListView>|>()" style="filled" fillcolor=yellow]; 17 [label="Delegated constructor call: super<R|DelegateProvider<IssueListView>|>()" style="filled" fillcolor=yellow];
19 [label="Exit function <init>" style="filled" fillcolor=red]; 18 [label="Exit function <init>" style="filled" fillcolor=red];
} }
20 [label="Exit class IssueListView" style="filled" fillcolor=red]; 19 [label="Exit class IssueListView" style="filled" fillcolor=red];
} }
16 -> {17} [color=green]; 15 -> {16} [color=green];
16 -> {20} [style=dotted]; 15 -> {19} [style=dotted];
16 -> {17} [style=dashed]; 15 -> {16} [style=dashed];
16 -> {17};
17 -> {18}; 17 -> {18};
18 -> {19}; 18 -> {19} [color=green];
19 -> {20} [color=green];
subgraph cluster_7 { subgraph cluster_7 {
color=red color=red
21 [label="Enter function updateFrom" style="filled" fillcolor=red]; 20 [label="Enter function updateFrom" style="filled" fillcolor=red];
subgraph cluster_8 { subgraph cluster_8 {
color=blue color=blue
22 [label="Enter block"]; 21 [label="Enter block"];
23 [label="Exit block"]; 22 [label="Exit block"];
} }
24 [label="Exit function updateFrom" style="filled" fillcolor=red]; 23 [label="Exit function updateFrom" style="filled" fillcolor=red];
} }
20 -> {21};
21 -> {22}; 21 -> {22};
22 -> {23}; 22 -> {23};
23 -> {24};
subgraph cluster_9 { subgraph cluster_9 {
color=red color=red
25 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red]; 24 [label="Enter class IssuesListUserProfile" style="filled" fillcolor=red];
subgraph cluster_10 { subgraph cluster_10 {
color=blue color=blue
26 [label="Enter function <init>" style="filled" fillcolor=red]; 25 [label="Enter function <init>" style="filled" fillcolor=red];
27 [label="Delegated constructor call: super<R|DelegateProvider<IssuesListUserProfile>|>()" style="filled" fillcolor=yellow]; 26 [label="Delegated constructor call: super<R|DelegateProvider<IssuesListUserProfile>|>()" style="filled" fillcolor=yellow];
28 [label="Exit function <init>" style="filled" fillcolor=red]; 27 [label="Exit function <init>" style="filled" fillcolor=red];
} }
subgraph cluster_11 { subgraph cluster_11 {
color=blue color=blue
29 [label="Enter property" style="filled" fillcolor=red]; 28 [label="Enter property" style="filled" fillcolor=red];
subgraph cluster_12 { subgraph cluster_12 {
color=blue color=blue
30 [label="Function call arguments enter"]; 29 [label="Function call arguments enter"];
31 [label="Postponed enter to lambda"]; 30 [label="Postponed enter to lambda"];
subgraph cluster_13 { subgraph cluster_13 {
color=blue color=blue
32 [label="Enter function <anonymous>" style="filled" fillcolor=red]; 31 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_14 { subgraph cluster_14 {
color=blue color=blue
33 [label="Enter block"]; 32 [label="Enter block"];
34 [label="Enter anonymous object"]; 33 [label="Enter anonymous object"];
subgraph cluster_15 { subgraph cluster_15 {
color=blue color=blue
35 [label="Enter class <anonymous object>" style="filled" fillcolor=red]; 34 [label="Enter class <anonymous object>" style="filled" fillcolor=red];
subgraph cluster_16 { subgraph cluster_16 {
color=blue color=blue
36 [label="Enter function <init>" style="filled" fillcolor=red]; 35 [label="Enter function <init>" style="filled" fillcolor=red];
37 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow]; 36 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
38 [label="Exit function <init>" style="filled" fillcolor=red]; 37 [label="Exit function <init>" style="filled" fillcolor=red];
} }
39 [label="Exit class <anonymous object>" style="filled" fillcolor=red]; 38 [label="Exit class <anonymous object>" style="filled" fillcolor=red];
} }
40 [label="Exit anonymous object expression"]; 39 [label="Exit anonymous object expression"];
41 [label="Exit block"]; 40 [label="Exit block"];
} }
42 [label="Exit function <anonymous>" style="filled" fillcolor=red]; 41 [label="Exit function <anonymous>" style="filled" fillcolor=red];
} }
subgraph cluster_17 { subgraph cluster_17 {
color=blue color=blue
43 [label="Enter function setValue" style="filled" fillcolor=red]; 42 [label="Enter function setValue" style="filled" fillcolor=red];
subgraph cluster_18 { subgraph cluster_18 {
color=blue color=blue
44 [label="Enter block"]; 43 [label="Enter block"];
subgraph cluster_19 { subgraph cluster_19 {
color=blue color=blue
45 [label="Function call arguments enter"]; 44 [label="Function call arguments enter"];
subgraph cluster_20 { subgraph cluster_20 {
color=blue color=blue
46 [label="Function call arguments enter"]; 45 [label="Function call arguments enter"];
47 [label="Function call arguments exit"]; 46 [label="Function call arguments exit"];
} }
48 [label="Function call: R|/IssueListView.IssueListView|()" style="filled" fillcolor=yellow]; 47 [label="Function call: R|/IssueListView.IssueListView|()" style="filled" fillcolor=yellow];
49 [label="Access variable R|<local>/value|"]; 48 [label="Access variable R|<local>/value|"];
50 [label="Function call arguments exit"]; 49 [label="Function call arguments exit"];
} }
51 [label="Function call: R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(...)" style="filled" fillcolor=yellow]; 50 [label="Function call: R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(...)" style="filled" fillcolor=yellow];
52 [label="Jump: ^setValue R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(R|<local>/value|)"]; 51 [label="Jump: ^setValue R|/IssueListView.IssueListView|().R|/IssueListView.updateFrom|(R|<local>/value|)"];
53 [label="Stub" style="filled" fillcolor=gray]; 52 [label="Stub" style="filled" fillcolor=gray];
54 [label="Exit block" style="filled" fillcolor=gray]; 53 [label="Exit block" style="filled" fillcolor=gray];
} }
55 [label="Exit function setValue" style="filled" fillcolor=red]; 54 [label="Exit function setValue" style="filled" fillcolor=red];
} }
subgraph cluster_21 { subgraph cluster_21 {
color=blue color=blue
56 [label="Enter function getValue" style="filled" fillcolor=red]; 55 [label="Enter function getValue" style="filled" fillcolor=red];
subgraph cluster_22 { subgraph cluster_22 {
color=blue color=blue
57 [label="Enter block"]; 56 [label="Enter block"];
subgraph cluster_23 { subgraph cluster_23 {
color=blue color=blue
58 [label="Function call arguments enter"]; 57 [label="Function call arguments enter"];
59 [label="Function call arguments exit"]; 58 [label="Function call arguments exit"];
} }
60 [label="Function call: R|/IssueListView.IssueListView|()" style="filled" fillcolor=yellow]; 59 [label="Function call: R|/IssueListView.IssueListView|()" style="filled" fillcolor=yellow];
61 [label="Jump: ^getValue R|/IssueListView.IssueListView|()"]; 60 [label="Jump: ^getValue R|/IssueListView.IssueListView|()"];
62 [label="Stub" style="filled" fillcolor=gray]; 61 [label="Stub" style="filled" fillcolor=gray];
63 [label="Exit block" style="filled" fillcolor=gray]; 62 [label="Exit block" style="filled" fillcolor=gray];
} }
64 [label="Exit function getValue" style="filled" fillcolor=red]; 63 [label="Exit function getValue" style="filled" fillcolor=red];
} }
65 [label="Function call arguments exit"]; 64 [label="Function call arguments exit"];
} }
66 [label="Postponed exit from lambda"]; 65 [label="Postponed exit from lambda"];
67 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...)" style="filled" fillcolor=yellow]; 66 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...)" style="filled" fillcolor=yellow];
subgraph cluster_24 { subgraph cluster_24 {
color=blue color=blue
68 [label="Function call arguments enter"]; 67 [label="Function call arguments enter"];
69 [label="Function call arguments exit"]; 68 [label="Function call arguments exit"];
} }
70 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...).R?C|special/error|(...)" style="filled" fillcolor=yellow]; 69 [label="Function call: this@R|/IssuesListUserProfile|.R|/delegate|<R|IssuesListUserProfile|, R|IssuesListUserProfile|, R|IssueListView|>(...).R?C|special/error|(...)" style="filled" fillcolor=yellow];
71 [label="Exit property delegate" style="filled" fillcolor=yellow]; 70 [label="Exit property delegate" style="filled" fillcolor=yellow];
72 [label="Exit property" style="filled" fillcolor=red]; 71 [label="Exit property" style="filled" fillcolor=red];
} }
73 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red]; 72 [label="Exit class IssuesListUserProfile" style="filled" fillcolor=red];
} }
25 -> {26} [color=green]; 24 -> {25} [color=green];
25 -> {73} [style=dotted]; 24 -> {72} [style=dotted];
25 -> {26 29} [style=dashed]; 24 -> {25 28} [style=dashed];
25 -> {26};
26 -> {27}; 26 -> {27};
27 -> {28}; 27 -> {28} [color=green];
28 -> {29} [color=green]; 28 -> {29};
29 -> {30}; 29 -> {30};
30 -> {31}; 30 -> {31 64 65};
31 -> {32 65 66}; 30 -> {31} [style=dashed];
31 -> {32} [style=dashed]; 31 -> {32};
32 -> {33}; 32 -> {33};
33 -> {34}; 33 -> {34};
33 -> {39} [style=dotted];
33 -> {34} [style=dashed];
34 -> {35}; 34 -> {35};
34 -> {40} [style=dotted]; 34 -> {42 55} [color=red];
34 -> {38} [style=dotted];
34 -> {35} [style=dashed]; 34 -> {35} [style=dashed];
35 -> {36}; 35 -> {36};
35 -> {43 56} [color=red];
35 -> {39} [style=dotted];
35 -> {36} [style=dashed];
36 -> {37}; 36 -> {37};
37 -> {38}; 37 -> {38};
38 -> {39}; 38 -> {39};
38 -> {42 55} [color=green];
38 -> {42 55} [style=dashed];
39 -> {40}; 39 -> {40};
39 -> {43 56} [color=green];
39 -> {43 56} [style=dashed];
40 -> {41}; 40 -> {41};
41 -> {42}; 42 -> {43};
43 -> {44}; 43 -> {44};
44 -> {45}; 44 -> {45};
45 -> {46}; 45 -> {46};
@@ -216,90 +216,89 @@ digraph delegateWithAnonymousObject_kt {
48 -> {49}; 48 -> {49};
49 -> {50}; 49 -> {50};
50 -> {51}; 50 -> {51};
51 -> {52}; 51 -> {54};
52 -> {55}; 51 -> {52} [style=dotted];
52 -> {53} [style=dotted]; 52 -> {53} [style=dotted];
53 -> {54} [style=dotted]; 53 -> {54} [style=dotted];
54 -> {55} [style=dotted]; 55 -> {56};
56 -> {57}; 56 -> {57};
57 -> {58}; 57 -> {58};
58 -> {59}; 58 -> {59};
59 -> {60}; 59 -> {60};
60 -> {61}; 60 -> {63};
61 -> {64}; 60 -> {61} [style=dotted];
61 -> {62} [style=dotted]; 61 -> {62} [style=dotted];
62 -> {63} [style=dotted]; 62 -> {63} [style=dotted];
63 -> {64} [style=dotted]; 64 -> {66};
65 -> {67}; 65 -> {66} [color=green];
66 -> {67} [color=green]; 65 -> {70} [color=red label="Postponed"];
66 -> {71} [color=red label="Postponed"]; 66 -> {67};
67 -> {68}; 67 -> {68};
68 -> {69}; 68 -> {69};
69 -> {70}; 69 -> {70};
70 -> {71}; 70 -> {71};
71 -> {72}; 71 -> {72} [color=green];
72 -> {73} [color=green];
subgraph cluster_25 { subgraph cluster_25 {
color=red color=red
74 [label="Enter function <getter>" style="filled" fillcolor=red]; 73 [label="Enter function <getter>" style="filled" fillcolor=red];
subgraph cluster_26 { subgraph cluster_26 {
color=blue color=blue
75 [label="Enter block"]; 74 [label="Enter block"];
subgraph cluster_27 { subgraph cluster_27 {
color=blue color=blue
76 [label="Function call arguments enter"]; 75 [label="Function call arguments enter"];
77 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; 76 [label="Access variable D|/IssuesListUserProfile.issueListView|"];
78 [label="Function call arguments exit"]; 77 [label="Function call arguments exit"];
} }
79 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(...)" style="filled" fillcolor=yellow]; 78 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(...)" style="filled" fillcolor=yellow];
80 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"]; 79 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.getValue: R|IssueListView|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|)"];
81 [label="Stub" style="filled" fillcolor=gray]; 80 [label="Stub" style="filled" fillcolor=gray];
82 [label="Exit block" style="filled" fillcolor=gray]; 81 [label="Exit block" style="filled" fillcolor=gray];
} }
83 [label="Exit function <getter>" style="filled" fillcolor=red]; 82 [label="Exit function <getter>" style="filled" fillcolor=red];
} }
73 -> {74};
74 -> {75}; 74 -> {75};
75 -> {76}; 75 -> {76};
76 -> {77}; 76 -> {77};
77 -> {78}; 77 -> {78};
78 -> {79}; 78 -> {79};
79 -> {80}; 79 -> {82};
80 -> {83}; 79 -> {80} [style=dotted];
80 -> {81} [style=dotted]; 80 -> {81} [style=dotted];
81 -> {82} [style=dotted]; 81 -> {82} [style=dotted];
82 -> {83} [style=dotted];
subgraph cluster_28 { subgraph cluster_28 {
color=red color=red
84 [label="Enter function <setter>" style="filled" fillcolor=red]; 83 [label="Enter function <setter>" style="filled" fillcolor=red];
subgraph cluster_29 { subgraph cluster_29 {
color=blue color=blue
85 [label="Enter block"]; 84 [label="Enter block"];
subgraph cluster_30 { subgraph cluster_30 {
color=blue color=blue
86 [label="Function call arguments enter"]; 85 [label="Function call arguments enter"];
87 [label="Access variable D|/IssuesListUserProfile.issueListView|"]; 86 [label="Access variable D|/IssuesListUserProfile.issueListView|"];
88 [label="Access variable R|<local>/issueListView|"]; 87 [label="Access variable R|<local>/issueListView|"];
89 [label="Function call arguments exit"]; 88 [label="Function call arguments exit"];
} }
90 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(...)" style="filled" fillcolor=yellow]; 89 [label="Function call: this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(...)" style="filled" fillcolor=yellow];
91 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|, R|<local>/issueListView|)"]; 90 [label="Jump: ^ this@R|/IssuesListUserProfile|.D|/IssuesListUserProfile.issueListView|.R|SubstitutionOverride<kotlin/properties/ReadWriteProperty.setValue: R|kotlin/Unit|>|(this@R|/IssuesListUserProfile|, ::R|/IssuesListUserProfile.issueListView|, R|<local>/issueListView|)"];
92 [label="Stub" style="filled" fillcolor=gray]; 91 [label="Stub" style="filled" fillcolor=gray];
93 [label="Exit block" style="filled" fillcolor=gray]; 92 [label="Exit block" style="filled" fillcolor=gray];
} }
94 [label="Exit function <setter>" style="filled" fillcolor=red]; 93 [label="Exit function <setter>" style="filled" fillcolor=red];
} }
83 -> {84};
84 -> {85}; 84 -> {85};
85 -> {86}; 85 -> {86};
86 -> {87}; 86 -> {87};
87 -> {88}; 87 -> {88};
88 -> {89}; 88 -> {89};
89 -> {90}; 89 -> {90};
90 -> {91}; 90 -> {93};
91 -> {94}; 90 -> {91} [style=dotted];
91 -> {92} [style=dotted]; 91 -> {92} [style=dotted];
92 -> {93} [style=dotted]; 92 -> {93} [style=dotted];
93 -> {94} [style=dotted];
} }
@@ -18,154 +18,153 @@ digraph plusAssignWithLambdaInRhs_kt {
3 [label="Enter block"]; 3 [label="Enter block"];
4 [label="Const: Null(null)"]; 4 [label="Const: Null(null)"];
5 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow]; 5 [label="Check not null: Null(null)!!" style="filled" fillcolor=yellow];
6 [label="Stub" style="filled" fillcolor=gray]; 6 [label="Variable declaration: lval list: R|kotlin/collections/MutableList<kotlin/Function1<kotlin/String, kotlin/String>>|"];
7 [label="Variable declaration: lval list: R|kotlin/collections/MutableList<kotlin/Function1<kotlin/String, kotlin/String>>|" style="filled" fillcolor=gray]; 7 [label="Access variable R|<local>/list|"];
8 [label="Access variable R|<local>/list|" style="filled" fillcolor=gray]; 8 [label="Postponed enter to lambda"];
9 [label="Postponed enter to lambda" style="filled" fillcolor=gray];
subgraph cluster_3 { subgraph cluster_3 {
color=blue color=blue
10 [label="Enter function <anonymous>" style="filled" fillcolor=gray]; 9 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_4 { subgraph cluster_4 {
color=blue color=blue
11 [label="Enter block" style="filled" fillcolor=gray]; 10 [label="Enter block"];
12 [label="Access variable R|<local>/it|" style="filled" fillcolor=gray]; 11 [label="Access variable R|<local>/it|"];
13 [label="Exit block" style="filled" fillcolor=gray]; 12 [label="Exit block"];
} }
14 [label="Exit function <anonymous>" style="filled" fillcolor=gray]; 13 [label="Exit function <anonymous>" style="filled" fillcolor=red];
} }
15 [label="Postponed exit from lambda" style="filled" fillcolor=gray]; 14 [label="Postponed exit from lambda"];
16 [label="Function call: R|<local>/list|.R|kotlin/collections/plusAssign|<R|(kotlin/String) -> kotlin/String|>(...)" style="filled" fillcolor=gray]; 15 [label="Function call: R|<local>/list|.R|kotlin/collections/plusAssign|<R|(kotlin/String) -> kotlin/String|>(...)" style="filled" fillcolor=yellow];
17 [label="Exit block" style="filled" fillcolor=gray]; 16 [label="Exit block"];
} }
18 [label="Exit function test" style="filled" fillcolor=gray]; 17 [label="Exit function test" style="filled" fillcolor=red];
} }
2 -> {3}; 2 -> {3};
3 -> {4}; 3 -> {4};
4 -> {5}; 4 -> {5};
5 -> {6} [style=dotted]; 5 -> {6};
6 -> {7} [style=dotted]; 6 -> {7};
7 -> {8} [style=dotted]; 7 -> {8};
8 -> {9} [style=dotted]; 8 -> {9 14 15};
9 -> {10 15 16} [style=dotted]; 8 -> {9} [style=dashed];
9 -> {10} [style=dashed]; 9 -> {10};
10 -> {11} [style=dotted]; 10 -> {11};
11 -> {12} [style=dotted]; 11 -> {12};
12 -> {13} [style=dotted]; 12 -> {13};
13 -> {14} [style=dotted]; 14 -> {15} [label="Postponed"];
15 -> {16} [style=dotted label="Postponed"]; 15 -> {16};
16 -> {17} [style=dotted]; 16 -> {17};
17 -> {18} [style=dotted];
subgraph cluster_5 { subgraph cluster_5 {
color=red color=red
19 [label="Enter class A" style="filled" fillcolor=red]; 18 [label="Enter class A" style="filled" fillcolor=red];
subgraph cluster_6 { subgraph cluster_6 {
color=blue color=blue
20 [label="Enter function <init>" style="filled" fillcolor=red]; 19 [label="Enter function <init>" style="filled" fillcolor=red];
21 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow]; 20 [label="Delegated constructor call: super<R|kotlin/Any|>()" style="filled" fillcolor=yellow];
22 [label="Exit function <init>" style="filled" fillcolor=red]; 21 [label="Exit function <init>" style="filled" fillcolor=red];
} }
subgraph cluster_7 { subgraph cluster_7 {
color=blue color=blue
23 [label="Enter property" style="filled" fillcolor=red]; 22 [label="Enter property" style="filled" fillcolor=red];
24 [label="Access variable R|<local>/executor|"]; 23 [label="Access variable R|<local>/executor|"];
25 [label="Exit property" style="filled" fillcolor=red]; 24 [label="Exit property" style="filled" fillcolor=red];
} }
26 [label="Exit class A" style="filled" fillcolor=red]; 25 [label="Exit class A" style="filled" fillcolor=red];
} }
19 -> {20} [color=green]; 18 -> {19} [color=green];
19 -> {26} [style=dotted]; 18 -> {25} [style=dotted];
19 -> {20 23} [style=dashed]; 18 -> {19 22} [style=dashed];
19 -> {20};
20 -> {21}; 20 -> {21};
21 -> {22}; 21 -> {22} [color=green];
22 -> {23} [color=green]; 22 -> {23};
23 -> {24}; 23 -> {24};
24 -> {25}; 24 -> {25} [color=green];
25 -> {26} [color=green];
subgraph cluster_8 { subgraph cluster_8 {
color=red color=red
27 [label="Enter function postpone" style="filled" fillcolor=red]; 26 [label="Enter function postpone" style="filled" fillcolor=red];
subgraph cluster_9 { subgraph cluster_9 {
color=blue color=blue
28 [label="Enter block"]; 27 [label="Enter block"];
subgraph cluster_10 { subgraph cluster_10 {
color=blue color=blue
29 [label="Function call arguments enter"]; 28 [label="Function call arguments enter"];
30 [label="Function call arguments exit"]; 29 [label="Function call arguments exit"];
} }
31 [label="Function call: R|kotlin/collections/mutableListOf|<R|() -> kotlin/Unit|>()" style="filled" fillcolor=yellow]; 30 [label="Function call: R|kotlin/collections/mutableListOf|<R|() -> kotlin/Unit|>()" style="filled" fillcolor=yellow];
32 [label="Variable declaration: lval queue: R|kotlin/collections/MutableList<kotlin/Function0<kotlin/Unit>>|"]; 31 [label="Variable declaration: lval queue: R|kotlin/collections/MutableList<kotlin/Function0<kotlin/Unit>>|"];
subgraph cluster_11 { subgraph cluster_11 {
color=blue color=blue
33 [label="Function call arguments enter"]; 32 [label="Function call arguments enter"];
34 [label="Postponed enter to lambda"]; 33 [label="Postponed enter to lambda"];
subgraph cluster_12 { subgraph cluster_12 {
color=blue color=blue
35 [label="Enter function <anonymous>" style="filled" fillcolor=red]; 34 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_13 { subgraph cluster_13 {
color=blue color=blue
36 [label="Enter block"]; 35 [label="Enter block"];
37 [label="Access variable R|<local>/queue|"]; 36 [label="Access variable R|<local>/queue|"];
38 [label="Postponed enter to lambda"]; 37 [label="Postponed enter to lambda"];
subgraph cluster_14 { subgraph cluster_14 {
color=blue color=blue
39 [label="Enter function <anonymous>" style="filled" fillcolor=red]; 38 [label="Enter function <anonymous>" style="filled" fillcolor=red];
subgraph cluster_15 { subgraph cluster_15 {
color=blue color=blue
40 [label="Enter block"]; 39 [label="Enter block"];
subgraph cluster_16 { subgraph cluster_16 {
color=blue color=blue
41 [label="Function call arguments enter"]; 40 [label="Function call arguments enter"];
subgraph cluster_17 { subgraph cluster_17 {
color=blue color=blue
42 [label="Function call arguments enter"]; 41 [label="Function call arguments enter"];
43 [label="Function call arguments exit"]; 42 [label="Function call arguments exit"];
} }
44 [label="Function call: R|<local>/computation|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow]; 43 [label="Function call: R|<local>/computation|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()" style="filled" fillcolor=yellow];
45 [label="Function call arguments exit"]; 44 [label="Function call arguments exit"];
} }
46 [label="Function call: R|<local>/resolve|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(...)" style="filled" fillcolor=yellow]; 45 [label="Function call: R|<local>/resolve|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(...)" style="filled" fillcolor=yellow];
47 [label="Exit block"]; 46 [label="Exit block"];
} }
48 [label="Exit function <anonymous>" style="filled" fillcolor=red]; 47 [label="Exit function <anonymous>" style="filled" fillcolor=red];
} }
49 [label="Postponed exit from lambda"]; 48 [label="Postponed exit from lambda"];
50 [label="Function call: R|<local>/queue|.R|kotlin/collections/plusAssign|<R|() -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow]; 49 [label="Function call: R|<local>/queue|.R|kotlin/collections/plusAssign|<R|() -> kotlin/Unit|>(...)" style="filled" fillcolor=yellow];
51 [label="Exit block"]; 50 [label="Exit block"];
} }
52 [label="Exit function <anonymous>" style="filled" fillcolor=red]; 51 [label="Exit function <anonymous>" style="filled" fillcolor=red];
} }
53 [label="Function call arguments exit"]; 52 [label="Function call arguments exit"];
} }
54 [label="Postponed exit from lambda"]; 53 [label="Postponed exit from lambda"];
55 [label="Function call: R|/A.A|<R|T|>(...)" style="filled" fillcolor=yellow]; 54 [label="Function call: R|/A.A|<R|T|>(...)" style="filled" fillcolor=yellow];
56 [label="Jump: ^postpone R|/A.A|<R|T|>(<L> = A@fun <anonymous>(resolve: R|(T) -> kotlin/Unit|): R|kotlin/Unit| <inline=NoInline> { 55 [label="Jump: ^postpone R|/A.A|<R|T|>(<L> = A@fun <anonymous>(resolve: R|(T) -> kotlin/Unit|): R|kotlin/Unit| <inline=NoInline> {
R|<local>/queue|.R|kotlin/collections/plusAssign|<R|() -> kotlin/Unit|>(fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> { R|<local>/queue|.R|kotlin/collections/plusAssign|<R|() -> kotlin/Unit|>(fun <anonymous>(): R|kotlin/Unit| <inline=NoInline> {
R|<local>/resolve|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(R|<local>/computation|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|()) R|<local>/resolve|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(R|<local>/computation|.R|SubstitutionOverride<kotlin/Function0.invoke: R|T|>|())
} }
) )
} }
)"]; )"];
57 [label="Stub" style="filled" fillcolor=gray]; 56 [label="Stub" style="filled" fillcolor=gray];
58 [label="Exit block" style="filled" fillcolor=gray]; 57 [label="Exit block" style="filled" fillcolor=gray];
} }
59 [label="Exit function postpone" style="filled" fillcolor=red]; 58 [label="Exit function postpone" style="filled" fillcolor=red];
} }
26 -> {27};
27 -> {28}; 27 -> {28};
28 -> {29}; 28 -> {29};
29 -> {30}; 29 -> {30};
30 -> {31}; 30 -> {31};
31 -> {32}; 31 -> {32};
32 -> {33}; 32 -> {33};
33 -> {34}; 33 -> {34 52 53};
34 -> {35 53 54}; 33 -> {34} [style=dashed];
34 -> {35} [style=dashed]; 34 -> {35};
35 -> {36}; 35 -> {36};
36 -> {37}; 36 -> {37};
37 -> {38}; 37 -> {38 48 49};
38 -> {39 49 50}; 37 -> {38} [style=dashed];
38 -> {39} [style=dashed]; 38 -> {39};
39 -> {40}; 39 -> {40};
40 -> {41}; 40 -> {41};
41 -> {42}; 41 -> {42};
@@ -174,16 +173,15 @@ digraph plusAssignWithLambdaInRhs_kt {
44 -> {45}; 44 -> {45};
45 -> {46}; 45 -> {46};
46 -> {47}; 46 -> {47};
47 -> {48}; 48 -> {49} [label="Postponed"];
49 -> {50} [label="Postponed"]; 49 -> {50};
50 -> {51}; 50 -> {51};
51 -> {52}; 52 -> {54};
53 -> {55}; 53 -> {54} [label="Postponed"];
54 -> {55} [label="Postponed"]; 54 -> {55};
55 -> {56}; 55 -> {58};
56 -> {59}; 55 -> {56} [style=dotted];
56 -> {57} [style=dotted]; 56 -> {57} [style=dotted];
57 -> {58} [style=dotted]; 57 -> {58} [style=dotted];
58 -> {59} [style=dotted];
} }
@@ -16646,6 +16646,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt"); runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt");
} }
@Test
@TestMetadata("checkNotNullWithNullableExpectedType.kt")
public void testCheckNotNullWithNullableExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt");
}
@Test @Test
@TestMetadata("coerceFunctionLiteralToSuspend.kt") @TestMetadata("coerceFunctionLiteralToSuspend.kt")
public void testCoerceFunctionLiteralToSuspend() { public void testCoerceFunctionLiteralToSuspend() {
@@ -17168,6 +17174,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt"); runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt");
} }
@Test
@TestMetadata("nestedIfWithExpectedType.kt")
public void testNestedIfWithExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt");
}
@Test @Test
@TestMetadata("NoInferenceFromDeclaredBounds.kt") @TestMetadata("NoInferenceFromDeclaredBounds.kt")
public void testNoInferenceFromDeclaredBounds() { public void testNoInferenceFromDeclaredBounds() {
@@ -18976,6 +18988,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
public void testWrongApproximationWithDefNotNullTypesAndDelegates() { public void testWrongApproximationWithDefNotNullTypesAndDelegates() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt"); runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt");
} }
@Test
@TestMetadata("wrongExpectedTypeForWhen.kt")
public void testWrongExpectedTypeForWhen() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongExpectedTypeForWhen.kt");
}
} }
@Nested @Nested
@@ -16652,6 +16652,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt"); runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt");
} }
@Test
@TestMetadata("checkNotNullWithNullableExpectedType.kt")
public void testCheckNotNullWithNullableExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt");
}
@Test @Test
@TestMetadata("coerceFunctionLiteralToSuspend.kt") @TestMetadata("coerceFunctionLiteralToSuspend.kt")
public void testCoerceFunctionLiteralToSuspend() { public void testCoerceFunctionLiteralToSuspend() {
@@ -17174,6 +17180,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt"); runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt");
} }
@Test
@TestMetadata("nestedIfWithExpectedType.kt")
public void testNestedIfWithExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt");
}
@Test @Test
@TestMetadata("NoInferenceFromDeclaredBounds.kt") @TestMetadata("NoInferenceFromDeclaredBounds.kt")
public void testNoInferenceFromDeclaredBounds() { public void testNoInferenceFromDeclaredBounds() {
@@ -18982,6 +18994,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
public void testWrongApproximationWithDefNotNullTypesAndDelegates() { public void testWrongApproximationWithDefNotNullTypesAndDelegates() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt"); runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt");
} }
@Test
@TestMetadata("wrongExpectedTypeForWhen.kt")
public void testWrongExpectedTypeForWhen() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongExpectedTypeForWhen.kt");
}
} }
@Nested @Nested
@@ -17,11 +17,13 @@ val ConeKotlinType.isDouble: Boolean get() = isBuiltinType(StandardClassIds.Doub
val ConeKotlinType.isAny: Boolean get() = isBuiltinType(StandardClassIds.Any, false) val ConeKotlinType.isAny: Boolean get() = isBuiltinType(StandardClassIds.Any, false)
val ConeKotlinType.isNullableAny: Boolean get() = isBuiltinType(StandardClassIds.Any, true) val ConeKotlinType.isNullableAny: Boolean get() = isBuiltinType(StandardClassIds.Any, true)
val ConeKotlinType.isAnyOrNullableAny: Boolean get() = isBuiltinType(StandardClassIds.Any, null)
val ConeKotlinType.isNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, false) val ConeKotlinType.isNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, false)
val ConeKotlinType.isNullableNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, true) val ConeKotlinType.isNullableNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, true)
val ConeKotlinType.isNothingOrNullableNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, null) val ConeKotlinType.isNothingOrNullableNothing: Boolean get() = isBuiltinType(StandardClassIds.Nothing, null)
val ConeKotlinType.isUnit: Boolean get() = isBuiltinType(StandardClassIds.Unit, false) val ConeKotlinType.isUnit: Boolean get() = isBuiltinType(StandardClassIds.Unit, false)
val ConeKotlinType.isUnitOrNullableUnit: Boolean get() = isBuiltinType(StandardClassIds.Unit, null)
val ConeKotlinType.isBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, false) val ConeKotlinType.isBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, false)
val ConeKotlinType.isNullableBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, true) val ConeKotlinType.isNullableBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, true)
val ConeKotlinType.isBooleanOrNullableBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, null) val ConeKotlinType.isBooleanOrNullableBoolean: Boolean get() = isBuiltinType(StandardClassIds.Boolean, null)
@@ -23817,6 +23817,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -23817,6 +23817,12 @@ public class FirLightTreeBlackBoxCodegenWithFir2IrFakeOverrideGeneratorTestGener
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -23817,6 +23817,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.diagnostics.ConeCannotInferValueParameterType
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.resolve.ResolutionMode import org.jetbrains.kotlin.fir.resolve.ResolutionMode
import org.jetbrains.kotlin.fir.resolve.calls.* import org.jetbrains.kotlin.fir.resolve.calls.*
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.inference.model.ConeArgumentConstraintPosition import org.jetbrains.kotlin.fir.resolve.inference.model.ConeArgumentConstraintPosition
import org.jetbrains.kotlin.fir.resolve.inference.model.ConeExpectedTypeConstraintPosition import org.jetbrains.kotlin.fir.resolve.inference.model.ConeExpectedTypeConstraintPosition
import org.jetbrains.kotlin.fir.resolve.initialTypeOfCandidate import org.jetbrains.kotlin.fir.resolve.initialTypeOfCandidate
@@ -30,6 +31,9 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirAbstractBod
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType
import org.jetbrains.kotlin.fir.resolve.transformers.replaceLambdaArgumentInvocationKinds import org.jetbrains.kotlin.fir.resolve.transformers.replaceLambdaArgumentInvocationKinds
import org.jetbrains.kotlin.fir.resolve.typeFromCallee import org.jetbrains.kotlin.fir.resolve.typeFromCallee
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.SyntheticCallableId
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
@@ -133,10 +137,17 @@ class FirCallCompleter(
resolutionMode: ResolutionMode, resolutionMode: ResolutionMode,
) { ) {
if (resolutionMode !is ResolutionMode.WithExpectedType) return if (resolutionMode !is ResolutionMode.WithExpectedType) return
val expectedType = resolutionMode.expectedTypeRef.coneTypeSafe<ConeKotlinType>() ?: return val expectedType = resolutionMode.expectedTypeRef.type.fullyExpandedType(session)
val system = candidate.system val system = candidate.system
when { when {
// Only add equality constraint in independent contexts (resolutionMode.forceFullCompletion) for K1 compatibility.
// Otherwise,
// we miss some constraints from incorporation which leads to NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER in cases like
// compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt.
resolutionMode.forceFullCompletion && candidate.isSyntheticFunctionCallThatShouldUseEqualityConstraint(expectedType) ->
system.addEqualityConstraintIfCompatible(initialType, expectedType, ConeExpectedTypeConstraintPosition)
// If type mismatch is assumed to be reported in the checker, we should not add a subtyping constraint that leads to error. // If type mismatch is assumed to be reported in the checker, we should not add a subtyping constraint that leads to error.
// Because it might make resulting type correct while, it's hopefully would be more clear if we let the call be inferred without // Because it might make resulting type correct while, it's hopefully would be more clear if we let the call be inferred without
// the expected type, and then would report diagnostic in the checker. // the expected type, and then would report diagnostic in the checker.
@@ -167,6 +178,44 @@ class FirCallCompleter(
} }
} }
/**
* For synthetic functions (when, try, !!, but **not** elvis), we need to add an equality constraint for the expected type
* so that some type variables aren't inferred to `Nothing` that appears in one of the branches.
*
* @See org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils.createKnownTypeParameterSubstitutorForSpecialCall
*/
private fun Candidate.isSyntheticFunctionCallThatShouldUseEqualityConstraint(expectedType: ConeKotlinType): Boolean {
// If we're inside an assignment's RHS, we mustn't add an equality constraint because it might prevent smartcasts.
// Example: val x: String? = null; x = if (foo) "" else throw Exception()
if (components.context.isInsideAssignmentRhs) return false
val symbol = symbol as? FirCallableSymbol ?: return false
if (symbol.origin != FirDeclarationOrigin.Synthetic.FakeFunction ||
expectedType.isUnitOrNullableUnit ||
expectedType.isAnyOrNullableAny ||
// We don't want to add an equality constraint to a nullable type to a !! call.
// See compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt
(symbol.callableId == SyntheticCallableId.CHECK_NOT_NULL && expectedType.canBeNull(session))
) {
return false
}
// If our expression contains any elvis, even nested, we mustn't add an equality constraint because it might influence the
// inferred type of the elvis RHS.
if (system.allTypeVariables.values.any {
it is ConeTypeParameterBasedTypeVariable && it.typeParameterSymbol.containingDeclarationSymbol.isSyntheticElvisFunction()
}
) {
return false
}
return true
}
private fun FirBasedSymbol<*>.isSyntheticElvisFunction(): Boolean {
return origin == FirDeclarationOrigin.Synthetic.FakeFunction && (this as? FirCallableSymbol)?.callableId == SyntheticCallableId.ELVIS_NOT_NULL
}
fun <T> runCompletionForCall( fun <T> runCompletionForCall(
candidate: Candidate, candidate: Candidate,
completionMode: ConstraintSystemCompletionMode, completionMode: ConstraintSystemCompletionMode,
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.builder.buildSamConversionExpression import org.jetbrains.kotlin.fir.expressions.builder.buildSamConversionExpression
import org.jetbrains.kotlin.fir.references.FirNamedReference import org.jetbrains.kotlin.fir.references.FirNamedReference
import org.jetbrains.kotlin.fir.references.FirResolvedErrorReference
import org.jetbrains.kotlin.fir.references.builder.buildResolvedCallableReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedCallableReference
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.*
@@ -936,9 +937,25 @@ class FirCallCompletionResultsWriterTransformer(
runPCLARelatedTasksForCandidate(calleeReference.candidate) runPCLARelatedTasksForCandidate(calleeReference.candidate)
return syntheticCall.apply { val resolvedCalleeReference = calleeReference.toResolvedReference()
replaceCalleeReference(calleeReference.toResolvedReference())
// If we have a conflict between the expected type and the inferred type, we would like to set the inferred type on the expression,
// so that we report INITIALIZER_TYPE_MISMATCH/RETURN_TYPE_MISMATCH.
// This is required so that the IDE provides the correct quick fixes.
if (syntheticCall.resultType !is ConeErrorType && resolvedCalleeReference is FirResolvedErrorReference) {
val diagnostic = resolvedCalleeReference.diagnostic
if (diagnostic is ConeConstraintSystemHasContradiction) {
val candidate = diagnostic.candidate as Candidate
val newSyntheticCallType = session.typeContext.commonSuperTypeOrNull(candidate.argumentMapping!!.keys.map { it.resolvedType })
if (newSyntheticCallType != null && !newSyntheticCallType.hasError()) {
syntheticCall.replaceConeTypeOrNull(newSyntheticCallType)
}
}
} }
syntheticCall.replaceCalleeReference(resolvedCalleeReference)
return syntheticCall
} }
private inline fun <reified D> transformSyntheticCallChildren( private inline fun <reified D> transformSyntheticCallChildren(
@@ -87,6 +87,20 @@ class BodyResolveContext(
@set:PrivateForInline @set:PrivateForInline
var inferenceSession: FirInferenceSession = FirInferenceSession.DEFAULT var inferenceSession: FirInferenceSession = FirInferenceSession.DEFAULT
@set:PrivateForInline
var isInsideAssignmentRhs: Boolean = false
@OptIn(PrivateForInline::class)
inline fun <R> withAssignmentRhs(block: () -> R): R {
val oldMode = this.isInsideAssignmentRhs
this.isInsideAssignmentRhs = true
return try {
block()
} finally {
this.isInsideAssignmentRhs = oldMode
}
}
/** /**
* This is required to avoid changing current mode into [FirTowerDataMode.CLASS_HEADER_ANNOTATIONS]. * This is required to avoid changing current mode into [FirTowerDataMode.CLASS_HEADER_ANNOTATIONS].
* E.g., we can visit the same annotation in two ways during a class visiting and outside of this class * E.g., we can visit the same annotation in two ways during a class visiting and outside of this class
@@ -1056,13 +1056,15 @@ open class FirExpressionsResolveTransformer(transformer: FirAbstractBodyResolveT
} }
} }
val result = variableAssignment.transformRValue( val result = context.withAssignmentRhs {
transformer, variableAssignment.transformRValue(
withExpectedType( transformer,
variableAssignment.lValue.resolvedType.toFirResolvedTypeRef(), withExpectedType(
expectedTypeMismatchIsReportedInChecker = true variableAssignment.lValue.resolvedType.toFirResolvedTypeRef(),
), expectedTypeMismatchIsReportedInChecker = true,
) ),
)
}
// for cases like // for cases like
// buildSomething { tVar = "" // Should infer TV from String assignment } // buildSomething { tVar = "" // Should infer TV from String assignment }
+13
View File
@@ -0,0 +1,13 @@
fun <T> Any?.unsafeCast(): T = this as T
fun <R> foo(returnType: String): R {
return when {
returnType == "Nothing" -> throw Exception()
else -> null.unsafeCast()
}
}
fun box(): String {
foo<String>("")
return "OK"
}
@@ -1,7 +1,5 @@
// WITH_REFLECT // WITH_REFLECT
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// IGNORE_BACKEND_K2: JVM_IR, JS_IR, JS_IR_ES6, NATIVE
// FIR status: KotlinNothingValueException from create()
fun <T : A> create(modelClass: Class<T>): T { fun <T : A> create(modelClass: Class<T>): T {
return if (modelClass.isAssignableFrom(B::class.java)) { return if (modelClass.isAssignableFrom(B::class.java)) {
@@ -4,8 +4,8 @@ fun test(s: IntRange?) {
val a: Int = <!INITIALIZER_TYPE_MISMATCH!>s?.start<!> val a: Int = <!INITIALIZER_TYPE_MISMATCH!>s?.start<!>
val b: Int? = s?.start val b: Int? = s?.start
val c: Int = s?.start ?: -11 val c: Int = s?.start ?: -11
val d: Int = <!TYPE_MISMATCH!>s?.start ?: "empty"<!> val d: Int = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>s?.start ?: "empty"<!>
val e: String = <!TYPE_MISMATCH!>s?.start ?: "empty"<!> val e: String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>s?.start ?: "empty"<!>
val f: Int = s?.endInclusive ?: b ?: 1 val f: Int = s?.endInclusive ?: b ?: 1
val g: Boolean? = e.startsWith("s")//?.length val g: Boolean? = e.startsWith("s")//?.length
} }
@@ -6,7 +6,7 @@ fun dump(dumpStrategy: String) {
val k0: kotlin.reflect.KFunction0<String> = returnAdapter(<!ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE!>::foo<!>) // Error: ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE val k0: kotlin.reflect.KFunction0<String> = returnAdapter(<!ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE!>::foo<!>) // Error: ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE
val k1: kotlin.reflect.KFunction0<String> = <!INITIALIZER_TYPE_MISMATCH!>::foo<!> val k1: kotlin.reflect.KFunction0<String> = <!INITIALIZER_TYPE_MISMATCH!>::foo<!>
// Should be error here, too // Should be error here, too
val k2: kotlin.reflect.KFunction0<String> = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>if (dumpStrategy == "KotlinLike") ::foo else ::bar<!> val k2: kotlin.reflect.KFunction0<String> = <!INITIALIZER_TYPE_MISMATCH!>if (dumpStrategy == "KotlinLike") ::foo else ::bar<!>
val f0: Function0<String> = returnAdapter(<!ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE!>::foo<!>) val f0: Function0<String> = returnAdapter(<!ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE!>::foo<!>)
val f1: Function0<String> = ::foo val f1: Function0<String> = ::foo
@@ -29,11 +29,11 @@ val testSafeCall4: String? = J.m[""]?.let { it.toString() }
val testIf1: String = if (true) J.s else J.s val testIf1: String = if (true) J.s else J.s
val testIf2: String? = if (true) J.s else J.s val testIf2: String? = if (true) J.s else J.s
val testIf3: String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>if (true) <!TYPE_MISMATCH!>J.m[""]<!> else <!TYPE_MISMATCH!>J.m[""]<!><!> val testIf3: String = <!INITIALIZER_TYPE_MISMATCH!>if (true) <!TYPE_MISMATCH!>J.m[""]<!> else <!TYPE_MISMATCH!>J.m[""]<!><!>
val testIf4: String? = if (true) J.m[""] else J.m[""] val testIf4: String? = if (true) J.m[""] else J.m[""]
val testWhen1: String = when { else -> J.s } val testWhen1: String = when { else -> J.s }
val testWhen2: String? = when { else -> J.s } val testWhen2: String? = when { else -> J.s }
val testWhen3: String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>when { else -> <!TYPE_MISMATCH!>J.m[""]<!> }<!> val testWhen3: String = <!INITIALIZER_TYPE_MISMATCH!>when { else -> <!TYPE_MISMATCH!>J.m[""]<!> }<!>
val testWhen4: String? = when { else -> J.m[""] } val testWhen4: String? = when { else -> J.m[""] }
@@ -0,0 +1,11 @@
// FIR_IDENTICAL
// DIAGNOSTICS: -UNCHECKED_CAST
interface I
interface I2 : I
fun <T : I> I.cast(): T? = this as? T
fun foo(i: I): I2? {
return i.cast()!!
}
@@ -0,0 +1,9 @@
fun foo() {
var f: Int = <!INITIALIZER_TYPE_MISMATCH!>if (true) <!ARGUMENT_TYPE_MISMATCH!>{ x: Long -> }<!> else { x: Long -> }<!>
}
class A {
var x: Int
get(): Int = <!RETURN_TYPE_MISMATCH!>if (true) { <!ARGUMENT_TYPE_MISMATCH!>{42}<!> } else { <!ARGUMENT_TYPE_MISMATCH!>{24}<!> }<!>
set(i: Int) {}
}
@@ -0,0 +1,9 @@
fun foo() {
var f: Int = if (true) <!TYPE_MISMATCH!>{ x: Long -> }<!> else <!TYPE_MISMATCH!>{ x: Long -> }<!>
}
class A {
var x: Int
get(): Int = if (true) <!TYPE_MISMATCH!>{ {42} }<!> else <!TYPE_MISMATCH!>{ {24} }<!>
set(i: Int) {}
}
@@ -1,8 +0,0 @@
// ISSUE: KT-57649
open class A
abstract class B {
fun test(current: A): A? =
// K2 reports empty intersection here due to the smart cast from A to B, where A & B aren't compatible
<!INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION_WARNING("K; B?, A?; multiple incompatible classes; : B, A")!>if (current === this) current else null<!>
}
@@ -1,8 +1,8 @@
// FIR_IDENTICAL
// ISSUE: KT-57649 // ISSUE: KT-57649
open class A open class A
abstract class B { abstract class B {
fun test(current: A): A? = fun test(current: A): A? =
// K2 reports empty intersection here due to the smart cast from A to B, where A & B aren't compatible
if (current === this) current else null if (current === this) current else null
} }
@@ -10,7 +10,7 @@ fun main() {
val x41: String.(String) -> String = if (true) {{ str: String, str2: String -> "this" }} else {{ str: String, str2: String -> "this" }} val x41: String.(String) -> String = if (true) {{ str: String, str2: String -> "this" }} else {{ str: String, str2: String -> "this" }}
val x42: String.(String) -> String = if (true) {{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }} else {{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }} val x42: String.(String) -> String = if (true) {{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }} else {{ str, <!CANNOT_INFER_PARAMETER_TYPE!>str2<!> -> "this" }}
val x5: String.() -> String = if (true) {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>} else {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>} val x5: String.() -> String = if (true) {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>} else {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>}
val x6: String.() -> String = if (true) {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>} else {{ "this" }} val x6: String.() -> String = <!INITIALIZER_TYPE_MISMATCH!>if (true) {<!ARGUMENT_TYPE_MISMATCH!>{ <!CANNOT_INFER_PARAMETER_TYPE!>str<!> -> "this" }<!>} else {{ "this" }}<!>
val x7: String.() -> String = select({ -> this }, { -> this }) val x7: String.() -> String = select({ -> this }, { -> this })
val x8: String.() -> String = select({ this }, { this }) val x8: String.() -> String = select({ this }, { this })
} }
@@ -1,62 +0,0 @@
// SKIP_TXT
interface Additional
interface A<T> : Additional
fun <U> aOf(): A<U> = TODO()
interface B<E>
fun <F> B<F>.convert(): A<F> = TODO()
fun foo1(x: B<String>): Any {
return if (x.hashCode() == 0) aOf() else x.convert()
}
fun foo2(x: B<String>): Additional {
return if (x.hashCode() == 0) aOf() else x.convert()
}
fun foo3(x: B<String>): Any {
return when {
x.hashCode() == 0 -> aOf()
else -> x.convert()
}
}
fun foo4(x: B<String>): Additional {
return when {
x.hashCode() == 0 -> aOf()
else -> x.convert()
}
}
fun foo5(x: B<String>): Any {
return if (x.hashCode() == 0) {
aOf()
} else {
x.convert()
}
}
fun foo6(x: B<String>): Additional {
return if (x.hashCode() == 0) {
aOf()
} else {
x.convert()
}
}
fun foo7(x: B<String>): Any {
return when {
x.hashCode() == 0 -> { aOf() }
else -> { x.convert() }
}
}
fun foo8(x: B<String>): Additional {
return when {
x.hashCode() == 0 -> { aOf() }
else -> { x.convert() }
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// SKIP_TXT // SKIP_TXT
interface Additional interface Additional
@@ -0,0 +1,24 @@
// FIR_IDENTICAL
interface Promise<T>
fun <T> materializePromise(): Promise<T> = TODO()
fun foo(x: Int, p1: Promise<Any?>, p2: Promise<Nothing?>): Promise<*> {
return if (x == 0) {
p1
} else {
if (x == 3) {
materializePromise()
} else {
p2
}
}
}
fun foo2(x: Int, p2: Promise<Nothing?>): Promise<*> {
return if (x == 3) {
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>materializePromise<!>()
} else {
p2
}
}
@@ -1,34 +0,0 @@
// Issue: KT-37621
class Inv<T>
class In<in I>
class Out<out O>
inline fun <reified TB : Inv<TB>> invBound(): TB = TODO()
inline fun <reified IB : In<IB>> inBound(): IB = TODO()
inline fun <reified OB : Out<OB>> outBound(): OB = TODO()
inline fun <reified T : Inv<T>> testInv(): T {
return try {
invBound()
} catch (ex: Exception) {
throw Exception()
}
}
inline fun <reified T : In<T>> testIn(): T {
return try {
inBound()
} catch (ex: Exception) {
throw Exception()
}
}
// Unexpected behaviour
inline fun <reified T : Out<T>> testOut(): T {
return try {
<!REIFIED_TYPE_FORBIDDEN_SUBSTITUTION!>outBound<!>()
} catch (ex: Exception) {
throw Exception()
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// Issue: KT-37621 // Issue: KT-37621
class Inv<T> class Inv<T>
@@ -33,6 +33,6 @@ fun main() {
} }
} }
val f : String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!><!> val f : String = <!INITIALIZER_TYPE_MISMATCH!>a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!><!>
checkSubtype<String>(<!ARGUMENT_TYPE_MISMATCH!>a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!><!>) checkSubtype<String>(<!ARGUMENT_TYPE_MISMATCH!>a<!UNNECESSARY_NOT_NULL_ASSERTION!>!!<!><!>)
} }
@@ -4,7 +4,7 @@ fun main() {
val a : Int? = null; val a : Int? = null;
var v = 1 var v = 1
val b : String = <!INITIALIZER_TYPE_MISMATCH!>v<!>; val b : String = <!INITIALIZER_TYPE_MISMATCH!>v<!>;
val f : String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>a!!<!>; val f : String = <!INITIALIZER_TYPE_MISMATCH!>a!!<!>;
val g : String = <!INITIALIZER_TYPE_MISMATCH!>v++<!>; val g : String = <!INITIALIZER_TYPE_MISMATCH!>v++<!>;
val g1 : String = <!INITIALIZER_TYPE_MISMATCH!>++v<!>; val g1 : String = <!INITIALIZER_TYPE_MISMATCH!>++v<!>;
val h : String = <!INITIALIZER_TYPE_MISMATCH!>v--<!>; val h : String = <!INITIALIZER_TYPE_MISMATCH!>v--<!>;
+2 -2
View File
@@ -1,4 +1,4 @@
val test: Int = if (true) { val test: Int = <!INITIALIZER_TYPE_MISMATCH!>if (true) {
<!TYPE_MISMATCH!>when (2) { <!TYPE_MISMATCH!>when (2) {
1 -> 1 1 -> 1
else -> null else -> null
@@ -6,4 +6,4 @@ val test: Int = if (true) {
} }
else { else {
2 2
} }<!>
+3 -3
View File
@@ -10,7 +10,7 @@
*/ */
fun test1(): Int { fun test1(): Int {
val x: String = <!TYPE_MISMATCH!>if (true) { val x: String = <!INITIALIZER_TYPE_MISMATCH!>if (true) {
<!TYPE_MISMATCH, TYPE_MISMATCH!>when { <!TYPE_MISMATCH, TYPE_MISMATCH!>when {
true -> <!TYPE_MISMATCH!>Any()<!> true -> <!TYPE_MISMATCH!>Any()<!>
else -> null else -> null
@@ -20,9 +20,9 @@ fun test1(): Int {
} }
fun test2(): Int { fun test2(): Int {
val x: String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!><!TYPE_MISMATCH!>when { val x: String = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>when {
true -> <!TYPE_MISMATCH!>Any()<!> true -> <!TYPE_MISMATCH!>Any()<!>
else -> null else -> null
}<!> ?: return 0<!> } ?: return 0<!>
return x.hashCode() return x.hashCode()
} }
@@ -28,7 +28,7 @@ val test3: (String) -> Boolean =
} }
val test4: (String) -> Boolean = val test4: (String) -> Boolean =
<!INITIALIZER_TYPE_MISMATCH!>when { when {
true -> <!ARGUMENT_TYPE_MISMATCH!>{ s1, <!CANNOT_INFER_PARAMETER_TYPE!>s2<!> -> true }<!> true -> <!ARGUMENT_TYPE_MISMATCH!>{ s1, <!CANNOT_INFER_PARAMETER_TYPE!>s2<!> -> true }<!>
else -> null!! else -> null!!
}<!> }
@@ -5,7 +5,7 @@ class ExcA : Exception()
class ExcB : Exception() class ExcB : Exception()
fun test2() { fun test2() {
val s: String? = <!INITIALIZER_TYPE_MISMATCH, TYPE_MISMATCH!>try { val s: String? = <!INITIALIZER_TYPE_MISMATCH!>try {
"" ""
} }
catch (e: ExcA) { catch (e: ExcA) {
@@ -71,7 +71,7 @@ FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
$receiver: VALUE_PARAMETER name:<this> type:<root>.Foo<T of <root>.<get-asT>> $receiver: VALUE_PARAMETER name:<this> type:<root>.Foo<T of <root>.<get-asT>>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-asT> <T> (): T of <root>.<get-asT>? declared in <root>' RETURN type=kotlin.Nothing from='public final fun <get-asT> <T> (): T of <root>.<get-asT>? declared in <root>'
WHEN type=kotlin.Any? origin=IF WHEN type=T of <root>.<get-asT>? origin=IF
BRANCH BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of <root>.<get-asT> if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of <root>.<get-asT>
GET_VAR '<this>: <root>.Foo<T of <root>.<get-asT>> declared in <root>.<get-asT>' type=<root>.Foo<T of <root>.<get-asT>> origin=null GET_VAR '<this>: <root>.Foo<T of <root>.<get-asT>> declared in <root>.<get-asT>' type=<root>.Foo<T of <root>.<get-asT>> origin=null
+1 -1
View File
@@ -2,7 +2,7 @@ FILE fqName:<root> fileName:/kt50028.kt
FUN name:test_1 visibility:public modality:FINAL <> () returnType:kotlin.String FUN name:test_1 visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test_1 (): kotlin.String declared in <root>' RETURN type=kotlin.Nothing from='public final fun test_1 (): kotlin.String declared in <root>'
WHEN type=kotlin.Nothing origin=WHEN WHEN type=kotlin.String origin=WHEN
BRANCH BRANCH
if: CONST Boolean type=kotlin.Boolean value=true if: CONST Boolean type=kotlin.Boolean value=true
then: BLOCK type=kotlin.Unit origin=null then: BLOCK type=kotlin.Unit origin=null
@@ -56,7 +56,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.String origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, s:kotlin.String?) returnType:kotlin.Unit
@@ -49,7 +49,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:end index:1 type:kotlin.Int VALUE_PARAMETER name:end index:1 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun subSequence (start: kotlin.Int, end: kotlin.Int): kotlin.CharSequence declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun subSequence (start: kotlin.Int, end: kotlin.Int): kotlin.CharSequence declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.CharSequence origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1] CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
@@ -209,7 +209,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.E $this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.E' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val]
@@ -407,7 +407,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.H $this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.H' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.H'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:get visibility:public modality:OPEN <> ($this:<root>.H, index:kotlin.Number) returnType:kotlin.Char [operator] FUN name:get visibility:public modality:OPEN <> ($this:<root>.H, index:kotlin.Number) returnType:kotlin.Char [operator]
@@ -483,7 +483,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.I $this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.I' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.I'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val]
@@ -588,7 +588,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:end index:1 type:kotlin.Int VALUE_PARAMETER name:end index:1 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun subSequence (start: kotlin.Int, end: kotlin.Int): kotlin.CharSequence declared in <root>.K' RETURN type=kotlin.Nothing from='public open fun subSequence (start: kotlin.Int, end: kotlin.Int): kotlin.CharSequence declared in <root>.K'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.CharSequence origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:L modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.A] CLASS CLASS name:L modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.A]
@@ -646,7 +646,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.L $this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.L' RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.L'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.L) returnType:java.util.stream.IntStream FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.L) returnType:java.util.stream.IntStream
@@ -656,7 +656,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.L $this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.L' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.L'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val]
@@ -724,7 +724,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.M $this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.M' RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.M'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.M) returnType:java.util.stream.IntStream FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.M) returnType:java.util.stream.IntStream
@@ -734,7 +734,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.M $this: VALUE_PARAMETER name:<this> type:<root>.M
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.M' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.M'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:length visibility:public modality:OPEN [fake_override,val]
@@ -338,7 +338,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.F) returnType:java.util.stream.IntStream FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.F) returnType:java.util.stream.IntStream
@@ -348,7 +348,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:get visibility:public modality:OPEN <> ($this:<root>.F, index:kotlin.Int) returnType:kotlin.Char [operator] FUN name:get visibility:public modality:OPEN <> ($this:<root>.F, index:kotlin.Int) returnType:kotlin.Char [operator]
@@ -368,7 +368,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:endIndex index:1 type:kotlin.Int VALUE_PARAMETER name:endIndex index:1 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun subSequence (startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.CharSequence declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun subSequence (startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.CharSequence declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.CharSequence origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface] CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
@@ -548,7 +548,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.I $this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.I' RETURN type=kotlin.Nothing from='public open fun chars (): java.util.stream.IntStream declared in <root>.I'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.I) returnType:java.util.stream.IntStream FUN name:codePoints visibility:public modality:OPEN <> ($this:<root>.I) returnType:java.util.stream.IntStream
@@ -558,7 +558,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.I $this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.I' RETURN type=kotlin.Nothing from='public open fun codePoints (): java.util.stream.IntStream declared in <root>.I'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.stream.IntStream origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:get visibility:public modality:OPEN <> ($this:<root>.I, index:kotlin.Int) returnType:kotlin.Char [operator] FUN name:get visibility:public modality:OPEN <> ($this:<root>.I, index:kotlin.Int) returnType:kotlin.Char [operator]
@@ -578,7 +578,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:endIndex index:1 type:kotlin.Int VALUE_PARAMETER name:endIndex index:1 type:kotlin.Int
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun subSequence (startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.CharSequence declared in <root>.I' RETURN type=kotlin.Nothing from='public open fun subSequence (startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.CharSequence declared in <root>.I'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.CharSequence origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any] CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
@@ -315,7 +315,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.A' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.A'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -358,7 +358,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B<T of <root>.B> $this: VALUE_PARAMETER name:<this> type:<root>.B<T of <root>.B>
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun isEmpty (): kotlin.Boolean declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun isEmpty (): kotlin.Boolean declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val] PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val]
@@ -150,7 +150,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.A' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.A'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -320,7 +320,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -150,7 +150,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.A' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.A'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -317,7 +317,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY name:size visibility:public modality:OPEN [val] PROPERTY name:size visibility:public modality:OPEN [val]
@@ -224,7 +224,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun iterator (): kotlin.collections.MutableIterator<kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun iterator (): kotlin.collections.MutableIterator<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableIterator<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
@@ -760,7 +760,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.E $this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.E' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -177,7 +177,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <U> (): U of <root>.F.bar declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun bar <U> (): U of <root>.F.bar declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=U of <root>.F.bar origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <U> ($this:<root>.F, a:U of <root>.F.foo) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <U> ($this:<root>.F, a:U of <root>.F.foo) returnType:kotlin.Unit
@@ -52,7 +52,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
@@ -70,7 +70,7 @@ FILE fqName:<root> fileName:/test.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<out kotlin.Number> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<in kotlin.Number> FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<in kotlin.Number>
@@ -79,7 +79,7 @@ FILE fqName:<root> fileName:/test.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<in kotlin.Number> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<*> FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<*>
@@ -88,7 +88,7 @@ FILE fqName:<root> fileName:/test.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<*> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<out kotlin.Number>?) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<out kotlin.Number>?) returnType:kotlin.Unit
@@ -213,7 +213,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.E $this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.E.bar declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=T of <root>.E.bar origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2] CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]
@@ -146,7 +146,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.List<kotlin.Any?> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
@@ -620,7 +620,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.LinkedList<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.LinkedList<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.LinkedList<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -276,7 +276,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedCollection<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedCollection<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedCollection<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1] CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1]
@@ -543,7 +543,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedCollection<kotlin.Int> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedCollection<kotlin.Int> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedCollection<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY name:size visibility:public modality:OPEN [val] PROPERTY name:size visibility:public modality:OPEN [val]
@@ -445,7 +445,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Int, kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Int, kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedMap<kotlin.Int, kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:OPEN [fake_override,val]
@@ -371,7 +371,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun firstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun firstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:putFirst visibility:public modality:OPEN <> ($this:<root>.B, k:kotlin.Any?, v:kotlin.Any?) returnType:kotlin.Any FUN name:putFirst visibility:public modality:OPEN <> ($this:<root>.B, k:kotlin.Any?, v:kotlin.Any?) returnType:kotlin.Any
@@ -1251,7 +1251,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Any, kotlin.Any> declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Any, kotlin.Any> declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedMap<kotlin.Any, kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val] PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val]
@@ -379,7 +379,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun firstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun firstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:pollFirstEntry visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> FUN name:pollFirstEntry visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any>
@@ -388,7 +388,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun pollFirstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun pollFirstEntry (): kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableMap.MutableEntry<kotlin.Any, kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:putFirst visibility:public modality:OPEN <> ($this:<root>.B, k:kotlin.Any?, v:kotlin.Any?) returnType:kotlin.Any FUN name:putFirst visibility:public modality:OPEN <> ($this:<root>.B, k:kotlin.Any?, v:kotlin.Any?) returnType:kotlin.Any
@@ -406,7 +406,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Any, kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedMap<kotlin.Any, kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedMap<kotlin.Any, kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:sequencedKeySet visibility:public modality:OPEN <> ($this:<root>.B) returnType:java.util.SequencedSet<kotlin.Any> FUN name:sequencedKeySet visibility:public modality:OPEN <> ($this:<root>.B) returnType:java.util.SequencedSet<kotlin.Any>
@@ -415,7 +415,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun sequencedKeySet (): java.util.SequencedSet<kotlin.Any> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun sequencedKeySet (): java.util.SequencedSet<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val] PROPERTY FAKE_OVERRIDE name:entries visibility:public modality:ABSTRACT [fake_override,val]
@@ -164,7 +164,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.A $this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.A' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.A'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -337,7 +337,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:spliterator visibility:public modality:OPEN <> ($this:<root>.B) returnType:java.util.Spliterator<kotlin.Int> FUN name:spliterator visibility:public modality:OPEN <> ($this:<root>.B) returnType:java.util.Spliterator<kotlin.Int>
@@ -347,7 +347,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun spliterator (): java.util.Spliterator<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Spliterator<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:OPEN [fake_override,val]
@@ -360,7 +360,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SortedSet<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SortedSet<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SortedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[java.util.SortedSet<kotlin.Int?>; kotlin.collections.MutableSet<kotlin.Int?>] CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[java.util.SortedSet<kotlin.Int?>; kotlin.collections.MutableSet<kotlin.Int?>]
@@ -327,7 +327,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.LinkedHashSet<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.LinkedHashSet<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.LinkedHashSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1] CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1]
@@ -607,7 +607,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2] CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2]
@@ -892,7 +892,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <root>.Java2] CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <root>.Java2]
@@ -1177,7 +1177,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.H $this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.H' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.H'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java3] CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
@@ -1440,7 +1440,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.J $this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.J' RETURN type=kotlin.Nothing from='public open fun reversed (): java.util.SequencedSet<kotlin.Int> declared in <root>.J'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.SequencedSet<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
PROPERTY FAKE_OVERRIDE name:size visibility:public modality:ABSTRACT [fake_override,val] PROPERTY FAKE_OVERRIDE name:size visibility:public modality:ABSTRACT [fake_override,val]
@@ -0,0 +1,64 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> () returnType:@[FlexibleNullability] kotlin.Any? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> (t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java1
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> () returnType:@[FlexibleNullability] kotlin.Any? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> (t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java1
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.String
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.String declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.String origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:FINAL <> ($this:<root>.B, t:kotlin.String) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:t index:0 type:kotlin.String
BLOCK_BODY
@@ -0,0 +1,24 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
fun bar(): String {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
fun foo(t: String) {
}
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: Java1.java // FILE: Java1.java
@@ -211,7 +211,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:i index:0 type:kotlin.Int? VALUE_PARAMETER name:i index:0 type:kotlin.Int?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java3 declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=<root>.Java3 origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[<root>.Java3] CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
@@ -97,7 +97,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:i index:0 type:kotlin.Any? VALUE_PARAMETER name:i index:0 type:kotlin.Any?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java2 declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Any?): <root>.Java2 declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=<root>.Java2 origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator] FUN name:plus visibility:public modality:OPEN <> ($this:<root>.B, i:kotlin.Int?) returnType:<root>.Java1 [operator]
@@ -107,7 +107,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:i index:0 type:kotlin.Int? VALUE_PARAMETER name:i index:0 type:kotlin.Int?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=<root>.Java1 origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <root>.Java1] CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.KotlinInterface; <root>.Java1]
@@ -192,7 +192,7 @@ FILE fqName:<root> fileName:/1.kt
VALUE_PARAMETER name:i index:0 type:kotlin.Int? VALUE_PARAMETER name:i index:0 type:kotlin.Int?
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun plus (i: kotlin.Int?): <root>.Java1 declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=<root>.Java1 origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any] CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
@@ -33,7 +33,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): java.util.ArrayList<kotlin.Int> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar (): java.util.ArrayList<kotlin.Int> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.ArrayList<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.IntArray FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.IntArray
@@ -43,7 +43,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.IntArray declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.IntArray declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.IntArray origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Array<kotlin.String> FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Array<kotlin.String>
@@ -53,7 +53,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.B $this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.Array<kotlin.String> declared in <root>.B' RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.Array<kotlin.String> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Array<kotlin.String> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Int>) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Int>) returnType:kotlin.Unit
@@ -105,7 +105,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): java.util.ArrayList<kotlin.Int> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun bar (): java.util.ArrayList<kotlin.Int> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.ArrayList<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.IntArray FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.IntArray
@@ -114,7 +114,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.IntArray declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.IntArray declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.IntArray origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Array<kotlin.String> FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Array<kotlin.String>
@@ -123,7 +123,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.Array<kotlin.String> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.Array<kotlin.String> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Array<kotlin.String> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, o:java.util.ArrayList<kotlin.Int>) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, o:java.util.ArrayList<kotlin.Int>) returnType:kotlin.Unit
@@ -186,7 +186,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.D $this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D' RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.MutableList<kotlin.Int>) returnType:kotlin.Unit FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.MutableList<kotlin.Int>) returnType:kotlin.Unit
@@ -239,7 +239,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.E $this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableSet<kotlin.String> declared in <root>.E' RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableSet<kotlin.String> declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableSet<kotlin.String> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo3 visibility:public modality:OPEN <> ($this:<root>.E, c:kotlin.collections.MutableSet<kotlin.String?>) returnType:kotlin.Unit FUN name:foo3 visibility:public modality:OPEN <> ($this:<root>.E, c:kotlin.collections.MutableSet<kotlin.String?>) returnType:kotlin.Unit
@@ -292,7 +292,7 @@ FILE fqName:<root> fileName:/1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.F $this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): java.util.Queue<kotlin.Any> declared in <root>.F' RETURN type=kotlin.Nothing from='public open fun bar2 (): java.util.Queue<kotlin.Any> declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.util.Queue<kotlin.Any> origin=EXCLEXCL
<T0>: kotlin.Nothing <T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.F, b:java.util.Queue<kotlin.Any>?) returnType:kotlin.Unit FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.F, b:java.util.Queue<kotlin.Any>?) returnType:kotlin.Unit
@@ -0,0 +1,30 @@
FILE fqName:<root> fileName:/KotlinInternal.kt
CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternal
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternal [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternal modality:OPEN visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternal) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternal
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternal'
CONST Int type=kotlin.Int value=1
@@ -0,0 +1,18 @@
// FILE: KotlinInternal.kt
open class KotlinInternal {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
internal open fun foo() {
}
internal open val a: Int
internal open get(): Int {
return 1
}
}
@@ -0,0 +1,30 @@
// FILE: KotlinInternal.kt
// CHECK:
// Mangled name: KotlinInternal
// Public signature: /KotlinInternal|null[0]
open class KotlinInternal {
// CHECK:
// Mangled name: KotlinInternal#<init>(){}
// Public signature: /KotlinInternal.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternal#foo(){}
// Public signature: /KotlinInternal.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternal{}a
// Public signature: /KotlinInternal.a|-1200697420457237799[0]
// Public signature debug description: {}a
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternal#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternal.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
@@ -0,0 +1,34 @@
FILE fqName:<root> fileName:/KotlinInternalSeparate.kt
CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInternalSeparate
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinInternalSeparate [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinInternalSeparate modality:OPEN visibility:public superTypes:[kotlin.Any]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Unit
annotations:
PublishedApi
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
PROPERTY name:a visibility:internal modality:OPEN [val]
annotations:
PublishedApi
FUN name:<get-a> visibility:internal modality:OPEN <> ($this:<root>.KotlinInternalSeparate) returnType:kotlin.Int
correspondingProperty: PROPERTY name:a visibility:internal modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInternalSeparate
BLOCK_BODY
RETURN type=kotlin.Nothing from='internal open fun <get-a> (): kotlin.Int declared in <root>.KotlinInternalSeparate'
CONST Int type=kotlin.Int value=1
@@ -0,0 +1,20 @@
// FILE: KotlinInternalSeparate.kt
open class KotlinInternalSeparate {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
@PublishedApi
internal open fun foo() {
}
@PublishedApi
internal open val a: Int
internal open get(): Int {
return 1
}
}
@@ -0,0 +1,32 @@
// FILE: KotlinInternalSeparate.kt
// CHECK:
// Mangled name: KotlinInternalSeparate
// Public signature: /KotlinInternalSeparate|null[0]
open class KotlinInternalSeparate {
// CHECK:
// Mangled name: KotlinInternalSeparate#<init>(){}
// Public signature: /KotlinInternalSeparate.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: KotlinInternalSeparate#foo(){}
// Public signature: /KotlinInternalSeparate.foo|-1041209573719867811[0]
// Public signature debug description: foo(){}
@PublishedApi
internal open fun foo(): Unit
// CHECK:
// Mangled name: KotlinInternalSeparate{}a
// Public signature: /KotlinInternalSeparate.a|-1200697420457237799[0]
// Public signature debug description: {}a
@PublishedApi
internal open val a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInternalSeparate#<get-a>(){}kotlin.Int
// Public signature: /KotlinInternalSeparate.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
internal open get(): Int
}
@@ -0,0 +1,67 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] java.lang.Void? [fake_override]
overridden:
public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B) returnType:java.lang.Void
overridden:
public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): java.lang.Void declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.lang.Void origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:k type:java.lang.Void? [val]
CALL 'public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.A' type=@[FlexibleNullability] java.lang.Void? origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
VAR name:k2 type:kotlin.Any [val]
TYPE_OP type=java.lang.Void origin=IMPLICIT_NOTNULL typeOperand=java.lang.Void
CALL 'public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.A' type=@[FlexibleNullability] java.lang.Void? origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A' type=<root>.A origin=null
VAR name:k3 type:java.lang.Void [val]
CALL 'public open fun foo (): java.lang.Void declared in <root>.B' type=java.lang.Void origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
VAR name:k4 type:kotlin.Any [val]
CALL 'public open fun foo (): java.lang.Void declared in <root>.B' type=java.lang.Void origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.B' type=<root>.B origin=null
@@ -0,0 +1,28 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(): Void {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
fun test() {
val k: Void? = A().foo()
val k2: Any = A().foo() /*!! Void */
val k3: Void = B().foo()
val k4: Any = B().foo()
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: Java1.java // FILE: Java1.java
@@ -0,0 +1,73 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] java.lang.Void? [fake_override]
overridden:
public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.Java1
public abstract fun foo (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:java.lang.Void
overridden:
public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.Java1
public abstract fun foo (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun foo (): java.lang.Void declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=java.lang.Void origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
VAR name:k1 type:kotlin.Any [val]
TYPE_OP type=java.lang.Void origin=IMPLICIT_NOTNULL typeOperand=java.lang.Void
CALL 'public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.C' type=@[FlexibleNullability] java.lang.Void? origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.C' type=<root>.C origin=null
VAR name:k2 type:java.lang.Void [val]
TYPE_OP type=java.lang.Void origin=IMPLICIT_NOTNULL typeOperand=java.lang.Void
CALL 'public open fun foo (): @[FlexibleNullability] java.lang.Void? declared in <root>.C' type=@[FlexibleNullability] java.lang.Void? origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.C' type=<root>.C origin=null
VAR name:k3 type:java.lang.Void [val]
CALL 'public open fun foo (): java.lang.Void declared in <root>.D' type=java.lang.Void origin=null
$this: CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.D' type=<root>.D origin=null
@@ -0,0 +1,27 @@
class C : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(): Void {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
fun test() {
val k1: Any = C().foo() /*!! Void */
val k2: Void = C().foo() /*!! Void */
val k3: Void = D().foo()
}
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM // TARGET_BACKEND: JVM
// FILE: Java1.java // FILE: Java1.java
@@ -0,0 +1,110 @@
FILE fqName:<root> fileName:/functionLiteralGenericSignature.kt
PROPERTY name:unitFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:unitFun type:kotlin.Function0<kotlin.Unit> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.unitFun'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-unitFun> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
correspondingProperty: PROPERTY name:unitFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-unitFun> (): kotlin.Function0<kotlin.Unit> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:unitFun type:kotlin.Function0<kotlin.Unit> visibility:private [final,static]' type=kotlin.Function0<kotlin.Unit> origin=null
PROPERTY name:intFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:intFun type:kotlin.Function0<kotlin.Int> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.intFun'
CONST Int type=kotlin.Int value=42
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-intFun> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Int>
correspondingProperty: PROPERTY name:intFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-intFun> (): kotlin.Function0<kotlin.Int> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:intFun type:kotlin.Function0<kotlin.Int> visibility:private [final,static]' type=kotlin.Function0<kotlin.Int> origin=null
PROPERTY name:stringParamFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:stringParamFun type:kotlin.Function1<kotlin.String, kotlin.Unit> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function1<kotlin.String, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:kotlin.String) returnType:kotlin.Unit
VALUE_PARAMETER name:x index:0 type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (x: kotlin.String): kotlin.Unit declared in <root>.stringParamFun'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-stringParamFun> visibility:public modality:FINAL <> () returnType:kotlin.Function1<kotlin.String, kotlin.Unit>
correspondingProperty: PROPERTY name:stringParamFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-stringParamFun> (): kotlin.Function1<kotlin.String, kotlin.Unit> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:stringParamFun type:kotlin.Function1<kotlin.String, kotlin.Unit> visibility:private [final,static]' type=kotlin.Function1<kotlin.String, kotlin.Unit> origin=null
PROPERTY name:listFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:listFun type:kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (l:kotlin.collections.List<kotlin.String>) returnType:kotlin.collections.List<kotlin.String>
VALUE_PARAMETER name:l index:0 type:kotlin.collections.List<kotlin.String>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (l: kotlin.collections.List<kotlin.String>): kotlin.collections.List<kotlin.String> declared in <root>.listFun'
GET_VAR 'l: kotlin.collections.List<kotlin.String> declared in <root>.listFun.<anonymous>' type=kotlin.collections.List<kotlin.String> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-listFun> visibility:public modality:FINAL <> () returnType:kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>>
correspondingProperty: PROPERTY name:listFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-listFun> (): kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:listFun type:kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>> visibility:private [final,static]' type=kotlin.Function1<kotlin.collections.List<kotlin.String>, kotlin.collections.List<kotlin.String>> origin=null
PROPERTY name:mutableListFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:mutableListFun type:kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>> origin=ANONYMOUS_FUNCTION
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> (l:kotlin.collections.MutableList<kotlin.Double>) returnType:kotlin.collections.MutableList<kotlin.Int>
VALUE_PARAMETER name:l index:0 type:kotlin.collections.MutableList<kotlin.Double>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <no name provided> (l: kotlin.collections.MutableList<kotlin.Double>): kotlin.collections.MutableList<kotlin.Int> declared in <root>.mutableListFun'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.collections.MutableList<kotlin.Int> origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-mutableListFun> visibility:public modality:FINAL <> () returnType:kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>>
correspondingProperty: PROPERTY name:mutableListFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-mutableListFun> (): kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:mutableListFun type:kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>> visibility:private [final,static]' type=kotlin.Function1<kotlin.collections.MutableList<kotlin.Double>, kotlin.collections.MutableList<kotlin.Int>> origin=null
PROPERTY name:funWithIn visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:funWithIn type:kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit> origin=ANONYMOUS_FUNCTION
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> (x:kotlin.Comparable<kotlin.String>) returnType:kotlin.Unit
VALUE_PARAMETER name:x index:0 type:kotlin.Comparable<kotlin.String>
BLOCK_BODY
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-funWithIn> visibility:public modality:FINAL <> () returnType:kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit>
correspondingProperty: PROPERTY name:funWithIn visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-funWithIn> (): kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:funWithIn type:kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit> visibility:private [final,static]' type=kotlin.Function1<kotlin.Comparable<kotlin.String>, kotlin.Unit> origin=null
PROPERTY name:extensionFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:extensionFun type:@[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit> origin=ANONYMOUS_FUNCTION
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> ($receiver:kotlin.Any) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
BLOCK_BODY
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-extensionFun> visibility:public modality:FINAL <> () returnType:@[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit>
correspondingProperty: PROPERTY name:extensionFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-extensionFun> (): @[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:extensionFun type:@[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit> visibility:private [final,static]' type=@[ExtensionFunctionType] kotlin.Function1<kotlin.Any, kotlin.Unit> origin=null
PROPERTY name:extensionWithArgFun visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:extensionWithArgFun type:@[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date> visibility:private [final,static]
EXPRESSION_BODY
FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date> origin=ANONYMOUS_FUNCTION
FUN LOCAL_FUNCTION name:<no name provided> visibility:local modality:FINAL <> ($receiver:kotlin.Long, x:kotlin.Any) returnType:java.util.Date
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Long
VALUE_PARAMETER name:x index:0 type:kotlin.Any
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <no name provided> (x: kotlin.Any): java.util.Date declared in <root>.extensionWithArgFun'
CONSTRUCTOR_CALL 'public constructor <init> () declared in java.util.Date' type=java.util.Date origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-extensionWithArgFun> visibility:public modality:FINAL <> () returnType:@[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date>
correspondingProperty: PROPERTY name:extensionWithArgFun visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-extensionWithArgFun> (): @[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:extensionWithArgFun type:@[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date> visibility:private [final,static]' type=@[ExtensionFunctionType] kotlin.Function2<kotlin.Long, kotlin.Any, java.util.Date> origin=null
@@ -0,0 +1,53 @@
val unitFun: Function0<Unit>
field = local fun <anonymous>() {
return Unit
}
get
val intFun: Function0<Int>
field = local fun <anonymous>(): Int {
return 42
}
get
val stringParamFun: Function1<String, Unit>
field = local fun <anonymous>(x: String) {
return Unit
}
get
val listFun: Function1<List<String>, List<String>>
field = local fun <anonymous>(l: List<String>): List<String> {
return l
}
get
val mutableListFun: Function1<MutableList<Double>, MutableList<Int>>
field = local fun <no name provided>(l: MutableList<Double>): MutableList<Int> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
get
val funWithIn: Function1<Comparable<String>, Unit>
field = local fun <no name provided>(x: Comparable<String>) {
}
get
val extensionFun: @ExtensionFunctionType Function1<Any, Unit>
field = local fun Any.<no name provided>() {
}
get
val extensionWithArgFun: @ExtensionFunctionType Function2<Long, Any, Date>
field = local fun Long.<no name provided>(x: Any): Date {
return Date()
}
get
@@ -1,5 +1,4 @@
// SKIP_KLIB_TEST // SKIP_KLIB_TEST
// FIR_IDENTICAL
// TARGET_BACKEND: JVM_IR // TARGET_BACKEND: JVM_IR
import java.util.Date import java.util.Date
@@ -16652,6 +16652,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt"); runTest("compiler/testData/diagnostics/tests/inference/capturedTypesInSelfType.kt");
} }
@Test
@TestMetadata("checkNotNullWithNullableExpectedType.kt")
public void testCheckNotNullWithNullableExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/checkNotNullWithNullableExpectedType.kt");
}
@Test @Test
@TestMetadata("coerceFunctionLiteralToSuspend.kt") @TestMetadata("coerceFunctionLiteralToSuspend.kt")
public void testCoerceFunctionLiteralToSuspend() { public void testCoerceFunctionLiteralToSuspend() {
@@ -17174,6 +17180,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt"); runTest("compiler/testData/diagnostics/tests/inference/mostSpecificAfterInference.kt");
} }
@Test
@TestMetadata("nestedIfWithExpectedType.kt")
public void testNestedIfWithExpectedType() {
runTest("compiler/testData/diagnostics/tests/inference/nestedIfWithExpectedType.kt");
}
@Test @Test
@TestMetadata("NoInferenceFromDeclaredBounds.kt") @TestMetadata("NoInferenceFromDeclaredBounds.kt")
public void testNoInferenceFromDeclaredBounds() { public void testNoInferenceFromDeclaredBounds() {
@@ -18982,6 +18994,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
public void testWrongApproximationWithDefNotNullTypesAndDelegates() { public void testWrongApproximationWithDefNotNullTypesAndDelegates() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt"); runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongApproximationWithDefNotNullTypesAndDelegates.kt");
} }
@Test
@TestMetadata("wrongExpectedTypeForWhen.kt")
public void testWrongExpectedTypeForWhen() {
runTest("compiler/testData/diagnostics/tests/inference/constraints/wrongExpectedTypeForWhen.kt");
}
} }
@Nested @Nested
@@ -23817,6 +23817,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -22593,6 +22593,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -23817,6 +23817,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -23817,6 +23817,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -23817,6 +23817,12 @@ public class FirBlackBoxCodegenTestWithInlineScopesGenerated extends AbstractFir
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -19956,6 +19956,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/inference/kt51040.kt"); runTest("compiler/testData/codegen/box/inference/kt51040.kt");
} }
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
runTest("compiler/testData/codegen/box/inference/lambdaWithStarReturn.kt"); runTest("compiler/testData/codegen/box/inference/lambdaWithStarReturn.kt");
@@ -28,7 +28,7 @@ class B<T>(data: T) : A<T>(data)
fun case1() { fun case1() {
val tryVal: B<String> = val tryVal: B<String> =
<!TYPE_MISMATCH, TYPE_MISMATCH!>try { <!INITIALIZER_TYPE_MISMATCH!>try {
throwExceptionA(false) throwExceptionA(false)
A("") A("")
} catch (e: Exception) { } catch (e: Exception) {
@@ -55,7 +55,7 @@ class B<T>(data: T) : A<T>(data)
fun case2() { fun case2() {
val tryVal: A<String> = val tryVal: A<String> =
<!TYPE_MISMATCH, TYPE_MISMATCH!>try { <!INITIALIZER_TYPE_MISMATCH!>try {
throwExceptionA(false) throwExceptionA(false)
A("") A("")
} catch (e: Exception) { } catch (e: Exception) {
@@ -79,7 +79,7 @@ class B<T>(data: T) : A<T>(data)
fun case3() { fun case3() {
val tryVal: A<Int> = val tryVal: A<Int> =
<!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>try { <!INITIALIZER_TYPE_MISMATCH!>try {
throwExceptionA(false) throwExceptionA(false)
A(2) A(2)
} catch (e: ExcA) { } catch (e: ExcA) {
@@ -490,7 +490,7 @@ fun case_17(a: Int?, b: Int = if (a != null) <!DEBUG_INFO_EXPRESSION_TYPE("kotli
} }
// TESTCASE NUMBER: 18 // TESTCASE NUMBER: 18
fun case_18(a: Int?, b: Int = <!TYPE_MISMATCH!>if (false || a != null || false) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>a<!> else 0<!>) { fun case_18(a: Int?, b: Int = <!INITIALIZER_TYPE_MISMATCH!>if (false || a != null || false) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>a<!> else 0<!>) {
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>a<!> <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int?")!>a<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>b<!> <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>b<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>b<!>.equals(null) <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>b<!>.equals(null)
@@ -685,7 +685,7 @@ fun case_33(a: ((Float) -> Int?)?, b: Float?, c: Boolean?) {
fun case_34(z1: Boolean?) { fun case_34(z1: Boolean?) {
<!CAN_BE_VAL!>var<!> z = null <!CAN_BE_VAL!>var<!> z = null
if (true && true && true && true && EnumClassWithNullableProperty.A.prop_1 != implicitNullableNothingProperty && <!FORBIDDEN_IDENTITY_EQUALS_WARNING, SENSELESS_COMPARISON!>EnumClassWithNullableProperty.A.prop_1 !== null<!> && <!FORBIDDEN_IDENTITY_EQUALS_WARNING, SENSELESS_COMPARISON!>EnumClassWithNullableProperty.A.prop_1 !== z<!> || z1 != implicitNullableNothingProperty || z1!! && <!UNREACHABLE_CODE!>true<!> && <!UNREACHABLE_CODE!>true<!>) { if (true && true && true && true && EnumClassWithNullableProperty.A.prop_1 != implicitNullableNothingProperty && <!FORBIDDEN_IDENTITY_EQUALS_WARNING, SENSELESS_COMPARISON!>EnumClassWithNullableProperty.A.prop_1 !== null<!> && <!FORBIDDEN_IDENTITY_EQUALS_WARNING, SENSELESS_COMPARISON!>EnumClassWithNullableProperty.A.prop_1 !== z<!> || z1 != implicitNullableNothingProperty || z1!! && true && true) {
} else { } else {
EnumClassWithNullableProperty.A.prop_1 EnumClassWithNullableProperty.A.prop_1
@@ -18075,6 +18075,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inference/kt49838.kt"); runTest("compiler/testData/codegen/box/inference/kt49838.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -18075,6 +18075,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT
runTest("compiler/testData/codegen/box/inference/kt49838.kt"); runTest("compiler/testData/codegen/box/inference/kt49838.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -18075,6 +18075,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/inference/kt49838.kt"); runTest("compiler/testData/codegen/box/inference/kt49838.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {
@@ -18075,6 +18075,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
runTest("compiler/testData/codegen/box/inference/kt49838.kt"); runTest("compiler/testData/codegen/box/inference/kt49838.kt");
} }
@Test
@TestMetadata("kt65882.kt")
public void testKt65882() {
runTest("compiler/testData/codegen/box/inference/kt65882.kt");
}
@Test @Test
@TestMetadata("lambdaWithStarReturn.kt") @TestMetadata("lambdaWithStarReturn.kt")
public void testLambdaWithStarReturn() { public void testLambdaWithStarReturn() {

Some files were not shown because too many files have changed in this diff Show More