mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
Minor: move nullability assertion tests javaInterop/notNullAssertions
(cherry picked from commit 5c62a14)
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
var component1Evaluated = false
|
||||
|
||||
// NB extension receiver is nullable
|
||||
operator fun J?.component1() = 1.also { component1Evaluated = true }
|
||||
|
||||
private operator fun J.component2() = 2
|
||||
|
||||
fun use(x: Any) {}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
val (a, b) = J.j()
|
||||
}
|
||||
if (!component1Evaluated) return "component1 should be evaluated"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static J j() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: test.kt
|
||||
// WITH_RUNTIME
|
||||
// LANGUAGE_VERSION: 1.1
|
||||
private operator fun A.inc() = A()
|
||||
|
||||
fun box(): String {
|
||||
var aNull = A.n()
|
||||
aNull++
|
||||
// NB no exception is thrown in language version 1.1
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public static A n() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: test.kt
|
||||
// WITH_RUNTIME
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
private operator fun A.inc() = A()
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
var aNull = A.n()
|
||||
aNull++
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public static A n() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: test.kt
|
||||
// WITH_RUNTIME
|
||||
// LANGUAGE_VERSION: 1.1
|
||||
import kotlin.test.*
|
||||
|
||||
operator fun A.inc() = A()
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
var aNull = A.n()
|
||||
aNull++
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public static A n() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FILE: test.kt
|
||||
// WITH_RUNTIME
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
operator fun A.inc() = A()
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalArgumentException> {
|
||||
var aNull = A.n()
|
||||
aNull++
|
||||
}
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public static A n() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.1
|
||||
import kotlin.test.*
|
||||
|
||||
fun String.extension() {}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalArgumentException> { J.s().extension() }
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
fun String.extension() {}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalStateException> { J.s().extension() }
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.1
|
||||
import kotlin.test.*
|
||||
|
||||
inline fun String.extension() {}
|
||||
|
||||
fun box(): String {
|
||||
J.s().extension() // NB no exception thrown
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
inline fun String.extension() {}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalStateException> {
|
||||
J.s().extension()
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
class C {
|
||||
fun test() { J.s().memberExtension() }
|
||||
fun String.memberExtension() {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalStateException> { C().test() }
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_RUNTIME
|
||||
// FILE: test.kt
|
||||
// LANGUAGE_VERSION: 1.2
|
||||
import kotlin.test.*
|
||||
|
||||
class C {
|
||||
fun test() { J.s().memberExtension() }
|
||||
private fun String.memberExtension() {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertFailsWith<IllegalStateException> {
|
||||
C().test()
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
public static String s() { return null; }
|
||||
}
|
||||
Reference in New Issue
Block a user