[Spec tests] Add fixed tests for expressions section, fix linkage for reference-equality-expressions section

This commit is contained in:
anastasiia.spaseeva
2019-12-26 15:11:29 +03:00
parent 9e3ecbd902
commit e0743f2268
42 changed files with 1162 additions and 106 deletions
@@ -0,0 +1 @@
java.lang.IllegalStateException: TYPE_MISMATCH: Type mismatch: inferred type is Nothing? but Boolean was expected (7,21) in /KotlinClass.kt
@@ -0,0 +1,34 @@
// FULL_JDK
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: flexibility
* NUMBER: 1
* DESCRIPTION: check Nothing flexibillity
* EXCEPTION: compiletime
* ISSUES: KT-35700
*/
// FILE: JavaClass.java
public class JavaClass{
public static <T> T id(T x) {
return null;
}
}
// FILE: KotlinClass.kt
fun box(): String {
val x = JavaClass.id(null) // Nothing!
return try {
val a = if (x) {
"NOK"
} else "NOK"
a
} catch (e: java.lang.IllegalStateException) {
"OK"
}
}
@@ -0,0 +1 @@
java.lang.IllegalStateException: TYPE_INFERENCE_EXPECTED_TYPE_MISMATCH: Type inference failed. Expected type mismatch: inferred type is Test<Nothing?> but Base<T> was expected (7,38) in /KotlinClass.kt
@@ -0,0 +1,36 @@
// FULL_JDK
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (NEGATIVE)
*
* SECTIONS: flexibility
* NUMBER: 2
* DESCRIPTION: check Nothing flexibillity
* EXCEPTION: compiletime
* ISSUES: KT-35700
*/
// FILE: Test.java
public class Test<T> extends Base<T> {
public Test (T arg) {
super(arg);
}
}
// FILE: KotlinClass.kt
open class Base<out T>(val prop: T)
class Inheritor <T : Any> {
companion object {
fun <T> default(): Base<T> = Test(null)
}
}
fun box() {
val v: Base<String> = Inheritor.default()
println(v.prop.length)
}
@@ -0,0 +1,34 @@
// !LANGUAGE: +NewInference
// FULL_JDK
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: flexibility
* NUMBER: 1
* DESCRIPTION: check Nothing flexibillity
* ISSUES: KT-35700
*/
// FILE: JavaClass.java
public class JavaClass{
public static <T> T id(T x) {
return null;
}
}
// FILE: KotlinClass.kt
fun box(): String {
val x = JavaClass.id(null) // Nothing!
return try {
val a = if (x) {
"NOK"
} else "NOK"
a
} catch (e: IllegalStateException) {
"OK"
}
}
@@ -0,0 +1,42 @@
// !LANGUAGE: +NewInference
// FULL_JDK
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX NOT LINKED SPEC TEST (POSITIVE)
*
* SECTIONS: flexibility
* NUMBER: 2
* DESCRIPTION: check Nothing flexibillity
* ISSUES: KT-35700
*/
// FILE: Test.java
public class Test<T> extends Base<T> {
public Test (T arg) {
super(arg);
}
}
// FILE: KotlinClass.kt
open class Base<out T>(val prop: T)
class Inheritor <T : Any> {
companion object {
fun <T> default(): Base<T> = Test(null)
}
}
fun box() : String{
val v: Base<String> = Inheritor.default()
try {
println(v.prop.length)
}catch (e: Exception ){
return "OK"
}
return "NOK"
}