Merge boxWithJava testData into box, delete BoxWithJava test
This commit is contained in:
committed by
Alexander Udalov
parent
16a0ddd2fb
commit
f8dfaf4599
@@ -0,0 +1,48 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
public static class C extends B {
|
||||
public OutPair<String, Integer> foo() {
|
||||
return super.foo();
|
||||
}
|
||||
|
||||
public In<Object> bar() {
|
||||
return super.bar();
|
||||
}
|
||||
}
|
||||
|
||||
public static String test() {
|
||||
A a = new C();
|
||||
|
||||
if (!a.foo().getX().equals("OK")) return "fail 1";
|
||||
if (!a.foo().getY().equals(123)) return "fail 2";
|
||||
|
||||
if (!a.bar().make("123").equals("123")) return "fail 3";
|
||||
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
class OutPair<out X, out Y>(val x: X, val y: Y)
|
||||
class In<in Z> {
|
||||
fun make(x: Z): String = x.toString()
|
||||
}
|
||||
|
||||
@JvmSuppressWildcards(suppress = false)
|
||||
interface A {
|
||||
fun foo(): OutPair<CharSequence, Number>
|
||||
fun bar(): In<String>
|
||||
}
|
||||
|
||||
abstract class B : A {
|
||||
override fun foo(): OutPair<String, Int> = OutPair("OK", 123)
|
||||
override fun bar(): In<Any> = In()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return JavaClass.test();
|
||||
}
|
||||
compiler/testData/codegen/box/javaInterop/generics/covariantOverrideWithDeclarationSiteProjection.kt
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
// WITH_RUNTIME
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
|
||||
public static class C extends B {
|
||||
public OutPair<String, Integer> foo() {
|
||||
return super.foo();
|
||||
}
|
||||
|
||||
public In<Object> bar() {
|
||||
return super.bar();
|
||||
}
|
||||
}
|
||||
|
||||
public static String test() {
|
||||
A a = new C();
|
||||
|
||||
if (!a.foo().getX().equals("OK")) return "fail 1";
|
||||
if (!a.foo().getY().equals(123)) return "fail 2";
|
||||
|
||||
if (!a.bar().make("123").equals("123")) return "fail 3";
|
||||
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
class OutPair<out X, out Y>(val x: X, val y: Y)
|
||||
class In<in Z> {
|
||||
fun make(x: Z): String = x.toString()
|
||||
}
|
||||
|
||||
interface A {
|
||||
fun foo(): OutPair<@JvmWildcard CharSequence, @JvmSuppressWildcards(false) Number>
|
||||
fun bar(): In<@JvmWildcard String>
|
||||
}
|
||||
|
||||
abstract class B : A {
|
||||
override fun foo(): OutPair<String, Int> = OutPair("OK", 123)
|
||||
override fun bar(): In<Any> = In()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
return JavaClass.test();
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
// FILE: JavaClass.java
|
||||
|
||||
public class JavaClass {
|
||||
public static String test() {
|
||||
return MainKt.bar(MainKt.foo());
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
|
||||
class Pair<out X, out Y>(val x: X, val y: Y)
|
||||
|
||||
class Inv<T>(val x: T)
|
||||
|
||||
fun foo(): Inv<Pair<CharSequence, CharSequence>> = Inv(Pair("O", "K"))
|
||||
|
||||
fun bar(inv: Inv<Pair<CharSequence, CharSequence>>) = inv.x.x.toString() + inv.x.y
|
||||
|
||||
fun box(): String {
|
||||
return JavaClass.test();
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// FILE: Test.java
|
||||
|
||||
public class Test {
|
||||
public static String invokeFoo() {
|
||||
try {
|
||||
ExtensionKt.foo(null);
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
try {
|
||||
ExtensionKt.getBar(null);
|
||||
}
|
||||
catch (IllegalArgumentException f) {
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
return "Fail: assertion must have been fired";
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: extension.kt
|
||||
|
||||
fun Any.foo() { }
|
||||
|
||||
val Any.bar: String get() = ""
|
||||
|
||||
fun box(): String {
|
||||
return Test.invokeFoo()
|
||||
}
|
||||
Reference in New Issue
Block a user