From f7d1bc5931a7cc4abbdb35e350f7c8417d5d39bf Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 20 Nov 2014 12:19:55 +0400 Subject: [PATCH] Diagnostics test: array creation of non-reified TP #KT-1370 Fixed --- .../reified/arrayConstruction.kt | 18 ++++++++++++++++++ .../reified/arrayConstruction.txt | 10 ++++++++++ .../JetDiagnosticsTestWithStdLibGenerated.java | 6 ++++++ 3 files changed, 34 insertions(+) create mode 100644 compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.txt diff --git a/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.kt b/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.kt new file mode 100644 index 00000000000..bd06668ac46 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.kt @@ -0,0 +1,18 @@ +// !DIAGNOSTICS: -NOTHING_TO_INLINE + +fun fail1(): Array = Array(1) { null!! } +fun ok1(block: () -> Array): Array = block() +inline fun ok2(): Array = Array(1) { null!! } + + +fun fail2(): Array = ok1 { Array(1) { null!! } } +fun ok3(block: () -> Array): Array = ok1 { block() } +inline fun ok4(): Array = ok1 { Array(1) { null!! } } + +fun fail3(block: () -> T): Pair, Array> = Pair(array( + block()), array() +) +inline fun ok5(block: () -> T): Pair, Array> = Pair( + array(block()), array() +) + diff --git a/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.txt b/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.txt new file mode 100644 index 00000000000..36451b546cb --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.txt @@ -0,0 +1,10 @@ +package + +internal fun fail1(): kotlin.Array +internal fun fail2(): kotlin.Array +internal fun fail3(/*0*/ block: () -> T): kotlin.Pair, kotlin.Array> +internal fun ok1(/*0*/ block: () -> kotlin.Array): kotlin.Array +kotlin.inline() internal fun ok2(): kotlin.Array +internal fun ok3(/*0*/ block: () -> kotlin.Array): kotlin.Array +kotlin.inline() internal fun ok4(): kotlin.Array +kotlin.inline() internal fun ok5(/*0*/ block: () -> T): kotlin.Pair, kotlin.Array> diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestWithStdLibGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestWithStdLibGenerated.java index 187fadba935..4d7a2a0642e 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestWithStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestWithStdLibGenerated.java @@ -635,6 +635,12 @@ public class JetDiagnosticsTestWithStdLibGenerated extends AbstractJetDiagnostic JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/diagnostics/testsWithStdLib/reified"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("arrayConstruction.kt") + public void testArrayConstruction() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/reified/arrayConstruction.kt"); + doTest(fileName); + } + @TestMetadata("arrayOfNullsReified.kt") public void testArrayOfNullsReified() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithStdLib/reified/arrayOfNullsReified.kt");