Diagnostics test: array creation of non-reified TP

#KT-1370 Fixed
This commit is contained in:
Denis Zharkov
2014-11-20 12:19:55 +04:00
parent 428109e8c4
commit f7d1bc5931
3 changed files with 34 additions and 0 deletions
@@ -0,0 +1,18 @@
// !DIAGNOSTICS: -NOTHING_TO_INLINE
fun <T> fail1(): Array<T> = <!TYPE_PARAMETER_AS_REIFIED!>Array<!>(1) { null!! }
fun <T> ok1(block: () -> Array<T>): Array<T> = block()
inline fun <reified T> ok2(): Array<T> = Array(1) { null!! }
fun <T> fail2(): Array<T> = ok1 { <!TYPE_PARAMETER_AS_REIFIED!>Array<!><T>(1) { null!! } }
fun <T> ok3(block: () -> Array<T>): Array<T> = ok1 { block() }
inline fun <reified T> ok4(): Array<T> = ok1 { Array<T>(1) { null!! } }
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(<!TYPE_PARAMETER_AS_REIFIED!>array<!>(
block()), <!TYPE_PARAMETER_AS_REIFIED!>array<!>()
)
inline fun <reified T> ok5(block: () -> T): Pair<Array<T>, Array<T>> = Pair(
array(block()), array()
)
@@ -0,0 +1,10 @@
package
internal fun </*0*/ T> fail1(): kotlin.Array<T>
internal fun </*0*/ T> fail2(): kotlin.Array<T>
internal fun </*0*/ T> fail3(/*0*/ block: () -> T): kotlin.Pair<kotlin.Array<T>, kotlin.Array<T>>
internal fun </*0*/ T> ok1(/*0*/ block: () -> kotlin.Array<T>): kotlin.Array<T>
kotlin.inline() internal fun </*0*/ reified T> ok2(): kotlin.Array<T>
internal fun </*0*/ T> ok3(/*0*/ block: () -> kotlin.Array<T>): kotlin.Array<T>
kotlin.inline() internal fun </*0*/ reified T> ok4(): kotlin.Array<T>
kotlin.inline() internal fun </*0*/ reified T> ok5(/*0*/ block: () -> T): kotlin.Pair<kotlin.Array<T>, kotlin.Array<T>>
@@ -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");