Merge boxWithJava testData into box, delete BoxWithJava test
This commit is contained in:
committed by
Alexander Udalov
parent
16a0ddd2fb
commit
f8dfaf4599
@@ -0,0 +1,21 @@
|
||||
// FILE: Test.java
|
||||
|
||||
public class Test extends java.util.ArrayList<String> {
|
||||
public final int size() {
|
||||
return 56;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class OurTest : Test()
|
||||
|
||||
fun box(): String {
|
||||
val t = OurTest()
|
||||
val x: MutableCollection<String> = t
|
||||
|
||||
if (t.size != 56) return "fail 1: ${t.size}"
|
||||
if (x.size != 56) return "fail 1: ${x.size}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
// FILE: J.java
|
||||
|
||||
public class J extends A {
|
||||
|
||||
public boolean okField = false;
|
||||
|
||||
public int getValProp() {
|
||||
return 123;
|
||||
}
|
||||
|
||||
public int getVarProp() {
|
||||
return 456;
|
||||
}
|
||||
|
||||
public void setVarProp(int x) {
|
||||
okField = true;
|
||||
}
|
||||
|
||||
public int isProp() {
|
||||
return 789;
|
||||
}
|
||||
|
||||
public void setProp(int x) {
|
||||
okField = true;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
open class A {
|
||||
open val valProp: Int = -1
|
||||
open var varProp: Int = -1
|
||||
open var isProp: Int = -1
|
||||
}
|
||||
|
||||
class B : J() {
|
||||
override val valProp: Int = super.valProp + 1
|
||||
override var varProp: Int
|
||||
set(value) {
|
||||
super.varProp = value
|
||||
}
|
||||
get() = super.varProp + 1
|
||||
|
||||
override var isProp: Int
|
||||
set(value) {
|
||||
super.isProp = value
|
||||
}
|
||||
get() = super.isProp + 1
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val j = J()
|
||||
var a: A = j
|
||||
|
||||
if (j.valProp != 123) return "fail 1"
|
||||
if (a.valProp != 123) return "fail 2"
|
||||
|
||||
j.varProp = -1
|
||||
if (!j.okField) return "fail 3"
|
||||
j.okField = false
|
||||
|
||||
a.varProp = -1
|
||||
if (!j.okField) return "fail 4"
|
||||
j.okField = false
|
||||
|
||||
if (j.varProp != 456) return "fail 5"
|
||||
if (a.varProp != 456) return "fail 6"
|
||||
|
||||
j.isProp = -1
|
||||
if (!j.okField) return "fail 7"
|
||||
j.okField = false
|
||||
|
||||
a.isProp = -1
|
||||
if (!j.okField) return "fail 8"
|
||||
j.okField = false
|
||||
|
||||
if (j.isProp != 789) return "fail 9"
|
||||
if (a.isProp != 789) return "fail 10"
|
||||
|
||||
val b = B()
|
||||
a = b
|
||||
|
||||
if (b.valProp != 124) return "fail 11"
|
||||
if (a.valProp != 124) return "fail 12"
|
||||
|
||||
b.varProp = -1
|
||||
if (!b.okField) return "fail 13"
|
||||
b.okField = false
|
||||
|
||||
a.varProp = -1
|
||||
if (!b.okField) return "fail 14"
|
||||
b.okField = false
|
||||
|
||||
if (b.varProp != 457) return "fail 15"
|
||||
if (a.varProp != 457) return "fail 16"
|
||||
|
||||
b.isProp = -1
|
||||
if (!b.okField) return "fail 17"
|
||||
b.okField = false
|
||||
|
||||
a.isProp = -1
|
||||
if (!b.okField) return "fail 18"
|
||||
b.okField = false
|
||||
|
||||
if (b.isProp != 790) return "fail 19"
|
||||
if (a.isProp != 790) return "fail 20"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
// FILE: J.java
|
||||
|
||||
public class J {
|
||||
public static int f() {
|
||||
return A.Companion.getI1() + A.Companion.getI2() + B.Named.getI1() + B.Named.getI2();
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class A {
|
||||
companion object {
|
||||
val i1 = 1
|
||||
val i2 = 2
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
companion object Named {
|
||||
val i1 = 3
|
||||
val i2 = 4
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return if (J.f() == A.i1 + A.i2 + B.i1 + B.i2) "OK" else "Fail: ${J.f()}"
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: Test.java
|
||||
|
||||
class Test {
|
||||
String test() {
|
||||
String s;
|
||||
|
||||
s = Klass.NAME;
|
||||
if (!s.equals("Klass")) throw new AssertionError("Fail class: " + s);
|
||||
|
||||
s = Klass.JVM_NAME;
|
||||
if (!s.equals("JvmKlass")) throw new AssertionError("Fail jvm class: " + s);
|
||||
|
||||
s = Trait.NAME;
|
||||
if (!s.equals("Trait")) throw new AssertionError("Fail interface: " + s);
|
||||
|
||||
s = Enoom.NAME;
|
||||
if (!s.equals("Enum")) throw new AssertionError("Fail enum: " + s);
|
||||
|
||||
s = Enoom.JVM_NAME;
|
||||
if (!s.equals("JvmEnum")) throw new AssertionError("Fail jvm enum: " + s);
|
||||
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class Klass {
|
||||
companion object {
|
||||
const val NAME = "Klass"
|
||||
@JvmField val JVM_NAME = "JvmKlass"
|
||||
}
|
||||
}
|
||||
|
||||
interface Trait {
|
||||
companion object {
|
||||
const val NAME = "Trait"
|
||||
}
|
||||
}
|
||||
|
||||
enum class Enoom {
|
||||
;
|
||||
companion object {
|
||||
const val NAME = "Enum"
|
||||
@JvmField val JVM_NAME = "JvmEnum"
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = Test().test()
|
||||
@@ -0,0 +1,30 @@
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
private Boolean value;
|
||||
|
||||
public Boolean isValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(boolean value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: kotlin.kt
|
||||
|
||||
fun box(): String {
|
||||
val javaClass = JavaClass()
|
||||
|
||||
if (javaClass.isValue != null) return "fail 1"
|
||||
|
||||
javaClass.isValue = false
|
||||
if (javaClass.isValue != false) return "fail 2"
|
||||
|
||||
javaClass.isValue = true
|
||||
if (javaClass.isValue != true) return "fail 3"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
private boolean value;
|
||||
|
||||
public boolean isValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(Boolean value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: kotlin.kt
|
||||
|
||||
fun box(): String {
|
||||
val javaClass = JavaClass()
|
||||
|
||||
if (javaClass.isValue != false) return "fail 1"
|
||||
|
||||
javaClass.isValue = true
|
||||
|
||||
if (javaClass.isValue != true) return "fail 2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
protected String FIELD = "OK";
|
||||
|
||||
}
|
||||
|
||||
// FILE: Kotlin.kt
|
||||
|
||||
package test
|
||||
|
||||
import JavaClass
|
||||
|
||||
class B : JavaClass() {
|
||||
inline fun bar() = FIELD
|
||||
}
|
||||
|
||||
fun box() = B().bar()
|
||||
@@ -0,0 +1,37 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: JavaBaseClass.java
|
||||
|
||||
public class JavaBaseClass {
|
||||
|
||||
private String field = "fail";
|
||||
|
||||
protected String getFoo() {
|
||||
return field;
|
||||
}
|
||||
|
||||
protected void setFoo(String foo) {
|
||||
field = foo;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: kotlin.kt
|
||||
|
||||
package z
|
||||
|
||||
import JavaBaseClass
|
||||
|
||||
object KotlinExtender : JavaBaseClass() {
|
||||
@JvmStatic fun test(): String {
|
||||
return runSlowly {
|
||||
foo = "OK"
|
||||
foo
|
||||
}
|
||||
}
|
||||
}
|
||||
fun runSlowly(f: () -> String): String {
|
||||
return f()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return KotlinExtender.test()
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: JavaBaseClass.java
|
||||
|
||||
public class JavaBaseClass {
|
||||
|
||||
private String field = "fail";
|
||||
|
||||
protected String getFoo() {
|
||||
return field;
|
||||
}
|
||||
|
||||
protected void setFoo(String foo) {
|
||||
field = foo;
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: kotlin.kt
|
||||
|
||||
package z
|
||||
|
||||
import JavaBaseClass
|
||||
|
||||
class A {
|
||||
@JvmField var foo = "fail"
|
||||
|
||||
companion object : JavaBaseClass() {
|
||||
@JvmStatic fun test(): String {
|
||||
return runSlowly {
|
||||
foo = "OK"
|
||||
foo
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fun runSlowly(f: () -> String): String {
|
||||
return f()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
a.foo = "Kotlin"
|
||||
if (a.foo != "Kotlin") return "fail"
|
||||
|
||||
return A.test()
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
// FILE: Test.java
|
||||
|
||||
public abstract class Test<F> {
|
||||
protected final F value = null;
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class A : Test<String>() {
|
||||
fun foo(): String? = value
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return if (A().foo() == null) "OK" else "Fail"
|
||||
}
|
||||
Reference in New Issue
Block a user