diff --git a/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.kt b/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.kt new file mode 100644 index 00000000000..30c0017118b --- /dev/null +++ b/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.kt @@ -0,0 +1 @@ +fun test(d: dynamic) = d ?: "other" \ No newline at end of file diff --git a/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.txt b/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.txt new file mode 100644 index 00000000000..9dce1c89a4b --- /dev/null +++ b/compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.txt @@ -0,0 +1,17 @@ +FILE fqName: fileName:/dynamicElvisOperator.kt + FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags: + VALUE_PARAMETER name:d index:0 type:dynamic flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='test(dynamic): dynamic' + BLOCK type=dynamic origin=ELVIS + VAR IR_TEMPORARY_VARIABLE name:tmp0_elvis_lhs type:dynamic flags:val + GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null + WHEN type=dynamic origin=null + BRANCH + if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'tmp0_elvis_lhs: dynamic' type=dynamic origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CONST String type=kotlin.String value="other" + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: GET_VAR 'tmp0_elvis_lhs: dynamic' type=dynamic origin=null diff --git a/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.kt b/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.kt new file mode 100644 index 00000000000..f1b6ee373ed --- /dev/null +++ b/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.kt @@ -0,0 +1 @@ +fun test(d: dynamic) = d!! \ No newline at end of file diff --git a/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.txt b/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.txt new file mode 100644 index 00000000000..a0f6a0fa3d4 --- /dev/null +++ b/compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.txt @@ -0,0 +1,17 @@ +FILE fqName: fileName:/dynamicExclExclOperator.kt + FUN name:test visibility:public modality:FINAL <> (d:dynamic) returnType:dynamic flags: + VALUE_PARAMETER name:d index:0 type:dynamic flags: + BLOCK_BODY + RETURN type=kotlin.Nothing from='test(dynamic): dynamic' + BLOCK type=dynamic origin=EXCLEXCL + VAR IR_TEMPORARY_VARIABLE name:tmp0_notnull type:dynamic flags:val + GET_VAR 'value-parameter d: dynamic' type=dynamic origin=null + WHEN type=dynamic origin=null + BRANCH + if: CALL 'EQEQ(Any?, Any?): Boolean' type=kotlin.Boolean origin=EQEQ + arg0: GET_VAR 'tmp0_notnull: dynamic' type=dynamic origin=null + arg1: CONST Null type=kotlin.Nothing? value=null + then: CALL 'THROW_NPE(): Nothing' type=kotlin.Nothing origin=EXCLEXCL + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: GET_VAR 'tmp0_notnull: dynamic' type=dynamic origin=null diff --git a/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java b/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java index 0cc6feb56a6..454bd29ff6f 100644 --- a/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/ir/IrJsTextTestCaseGenerated.java @@ -91,6 +91,16 @@ public class IrJsTextTestCaseGenerated extends AbstractIrJsTextTestCase { runTest("compiler/testData/ir/irJsText/dynamic/dynamicCall.kt"); } + @TestMetadata("dynamicElvisOperator.kt") + public void testDynamicElvisOperator() throws Exception { + runTest("compiler/testData/ir/irJsText/dynamic/dynamicElvisOperator.kt"); + } + + @TestMetadata("dynamicExclExclOperator.kt") + public void testDynamicExclExclOperator() throws Exception { + runTest("compiler/testData/ir/irJsText/dynamic/dynamicExclExclOperator.kt"); + } + @TestMetadata("dynamicMemberAccess.kt") public void testDynamicMemberAccess() throws Exception { runTest("compiler/testData/ir/irJsText/dynamic/dynamicMemberAccess.kt");