diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java index a6b966d76b5..7248524446e 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/fir/Fir2IrTextTestGenerated.java @@ -1746,6 +1746,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest { public void testPutIfAbsent() throws Exception { runTest("compiler/testData/ir/irText/firProblems/putIfAbsent.kt"); } + + @TestMetadata("V8ArrayToList.kt") + public void testV8ArrayToList() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/V8ArrayToList.kt"); + } } @TestMetadata("compiler/testData/ir/irText/lambdas") diff --git a/compiler/testData/ir/irText/firProblems/V8ArrayToList.kt b/compiler/testData/ir/irText/firProblems/V8ArrayToList.kt new file mode 100644 index 00000000000..25cdf53b580 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/V8ArrayToList.kt @@ -0,0 +1,21 @@ +// FILE: Utils.java + +import java.util.*; + +public class Utils { + public static List toList(final V8Array array) { + List list = new ArrayList(); + list.add("OK"); + return list; + } +} + +// FILE: v8arrayToList.kt + +class V8Array + +fun box(): String { + val array = V8Array() + val list = Utils.toList(array) as List + return list[0] +} \ No newline at end of file diff --git a/compiler/testData/ir/irText/firProblems/v8arrayToList.fir.txt b/compiler/testData/ir/irText/firProblems/v8arrayToList.fir.txt new file mode 100644 index 00000000000..d195f2578d9 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/v8arrayToList.fir.txt @@ -0,0 +1,32 @@ +FILE fqName: fileName:/v8arrayToList.kt + CLASS CLASS name:V8Array modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.V8Array + CONSTRUCTOR visibility:public <> () returnType:.V8Array [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:V8Array modality:FINAL 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 [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: 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: 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: type:kotlin.Any + FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String + BLOCK_BODY + VAR name:array type:.V8Array [val] + CONSTRUCTOR_CALL 'public constructor () [primary] declared in .V8Array' type=.V8Array origin=null + VAR name:list type:kotlin.collections.List [val] + TYPE_OP type=kotlin.collections.List origin=CAST typeOperand=kotlin.collections.List + CALL 'public open fun toList (array: .V8Array?): kotlin.collections.List? declared in .Utils' type=IrErrorType origin=null + array: GET_VAR 'val array: .V8Array [val] declared in .box' type=.V8Array origin=null + RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in ' + CALL 'public abstract fun get (index: kotlin.Int): E of kotlin.collections.List [operator] declared in kotlin.collections.List' type=kotlin.String origin=null + $this: GET_VAR 'val list: kotlin.collections.List [val] declared in .box' type=kotlin.collections.List origin=null + index: CONST Int type=kotlin.Int value=0 diff --git a/compiler/testData/ir/irText/firProblems/v8arrayToList.txt b/compiler/testData/ir/irText/firProblems/v8arrayToList.txt new file mode 100644 index 00000000000..c599d97fa3b --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/v8arrayToList.txt @@ -0,0 +1,32 @@ +FILE fqName: fileName:/v8arrayToList.kt + CLASS CLASS name:V8Array modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.V8Array + CONSTRUCTOR visibility:public <> () returnType:.V8Array [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:V8Array modality:FINAL 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 [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: 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: 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: type:kotlin.Any + FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String + BLOCK_BODY + VAR name:array type:.V8Array [val] + CONSTRUCTOR_CALL 'public constructor () [primary] declared in .V8Array' type=.V8Array origin=null + VAR name:list type:kotlin.collections.List [val] + TYPE_OP type=kotlin.collections.List origin=CAST typeOperand=kotlin.collections.List + CALL 'public open fun toList (array: @[FlexibleNullability] .V8Array?): @[FlexibleNullability] kotlin.collections.MutableList? declared in .Utils' type=@[FlexibleNullability] kotlin.collections.MutableList? origin=null + array: GET_VAR 'val array: .V8Array [val] declared in .box' type=.V8Array origin=null + RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in ' + CALL 'public abstract fun get (index: kotlin.Int): E of kotlin.collections.List [operator] declared in kotlin.collections.List' type=kotlin.String origin=GET_ARRAY_ELEMENT + $this: GET_VAR 'val list: kotlin.collections.List [val] declared in .box' type=kotlin.collections.List origin=null + index: CONST Int type=kotlin.Int value=0 diff --git a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java index 396dfd0c29c..9a29d5dd9d8 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/ir/IrTextTestCaseGenerated.java @@ -1745,6 +1745,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase { public void testPutIfAbsent() throws Exception { runTest("compiler/testData/ir/irText/firProblems/putIfAbsent.kt"); } + + @TestMetadata("V8ArrayToList.kt") + public void testV8ArrayToList() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/V8ArrayToList.kt"); + } } @TestMetadata("compiler/testData/ir/irText/lambdas")