Pull Up: Kotlin -> Java interoperability

This commit is contained in:
Alexey Sedunov
2015-08-04 15:02:50 +03:00
committed by Alexey Sedunov
parent ffc56a7c31
commit a9783ffe81
55 changed files with 733 additions and 91 deletions
@@ -0,0 +1,3 @@
class A {
}
@@ -0,0 +1,10 @@
import org.jetbrains.annotations.NotNull;
abstract class A {
public final int x;
abstract boolean foo(int n);
abstract void bar(@NotNull String s);
}
@@ -0,0 +1,25 @@
// WITH_RUNTIME
abstract class <caret>B: A() {
// INFO: {"checked": "true"}
val x = 1
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
abstract fun bar(s: String)
// INFO: {"checked": "true"}
inner class X {
}
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,21 @@
// WITH_RUNTIME
abstract class B: A() {
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
override fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
inner class X {
}
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,3 @@
class A {
}
@@ -0,0 +1,10 @@
import org.jetbrains.annotations.NotNull;
abstract class A {
public final int x;
abstract boolean foo(int n);
abstract void bar(@NotNull String s);
}
@@ -0,0 +1,25 @@
// WITH_RUNTIME
abstract class <caret>B: A() {
// INFO: {"checked": "true", "toAbstract": "true"}
val x = 1
// INFO: {"checked": "true", "toAbstract": "true"}
val y: Int get() = 2
// INFO: {"checked": "true", "toAbstract": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true", "toAbstract": "true"}
abstract val t: Int
// INFO: {"checked": "true", "toAbstract": "true"}
fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true", "toAbstract": "true"}
abstract fun bar(s: String)
// INFO: {"checked": "true", "toAbstract": "true"}
inner class X {
}
// INFO: {"checked": "true", "toAbstract": "true"}
class Y {
}
}
@@ -0,0 +1,21 @@
// WITH_RUNTIME
abstract class B: A() {
// INFO: {"checked": "true", "toAbstract": "true"}
val y: Int get() = 2
// INFO: {"checked": "true", "toAbstract": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true", "toAbstract": "true"}
abstract val t: Int
// INFO: {"checked": "true", "toAbstract": "true"}
override fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true", "toAbstract": "true"}
inner class X {
}
// INFO: {"checked": "true", "toAbstract": "true"}
class Y {
}
}
@@ -0,0 +1,3 @@
class A<T extends I, U extends I, V> {
}
@@ -0,0 +1,21 @@
import org.jetbrains.annotations.NotNull;
abstract class A<T extends I, U extends I, V> {
@NotNull
public final T foo1;
@NotNull
public final Z<T> foo2;
public final Object foo3;
@NotNull
public final Z foo4;
@NotNull
public final T foo5;
@NotNull
public final Z<T> foo6;
public final Object foo7;
@NotNull
public final Z foo8;
abstract <S extends T> void foo(@NotNull T x1, @NotNull Z<T> x2, Object y1, @NotNull Z y2, @NotNull I w1, @NotNull Z w2, @NotNull S s1, @NotNull Z<S> s2);
}
@@ -0,0 +1,30 @@
// WITH_RUNTIME
interface I
interface Z<T>
class C<W: I> {
inner class <caret>B<X: I, Y>(x: X, y: Y): A<X, I, Z<Y>>() {
// INFO: {"checked": "true"}
fun foo<S : X>(x1: X, x2: Z<X>, y1: Y, y2: Z<Y>, w1: W, w2: Z<W>, s1: S, s2: Z<S>) {
}
// INFO: {"checked": "true"}
val foo1: X
// INFO: {"checked": "true"}
val foo2: Z<X>
// INFO: {"checked": "true"}
val foo3: Y
// INFO: {"checked": "true"}
val foo4: Z<Y>
// INFO: {"checked": "true"}
val foo5 = x
// INFO: {"checked": "true"}
val foo6 = object: Z<X> {}
// INFO: {"checked": "true"}
val foo7 = y
// INFO: {"checked": "true"}
val foo8 = object: Z<Y> {}
}
}
@@ -0,0 +1,14 @@
// WITH_RUNTIME
interface I
interface Z<T>
class C<W: I> {
inner class B<X: I, Y>(x: X, y: Y): A<X, I, Z<Y>>() {
// INFO: {"checked": "true"}
override fun foo<S : X>(x1: X, x2: Z<X>, y1: Y, y2: Z<Y>, w1: W, w2: Z<W>, s1: S, s2: Z<S>) {
}
}
}
@@ -0,0 +1,3 @@
interface I {
}
@@ -0,0 +1,8 @@
import org.jetbrains.annotations.NotNull;
interface I {
boolean foo(int n);
void bar(@NotNull String s);
}
@@ -0,0 +1,20 @@
// WITH_RUNTIME
abstract class <caret>B: I {
// INFO: {"checked": "true"}
val x = 1
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
abstract fun bar(s: String)
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,18 @@
// WITH_RUNTIME
abstract class B: I {
// INFO: {"checked": "true"}
val x = 1
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
override fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,5 @@
class T {
static class A {
}
}
@@ -0,0 +1,12 @@
import org.jetbrains.annotations.NotNull;
class T {
static abstract class A {
public final int x;
abstract boolean foo(int n);
abstract void bar(@NotNull String s);
}
}
@@ -0,0 +1,25 @@
// WITH_RUNTIME
abstract class <caret>B: T.A() {
// INFO: {"checked": "true"}
val x = 1
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
abstract fun bar(s: String)
// INFO: {"checked": "true"}
inner class X {
}
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,21 @@
// WITH_RUNTIME
abstract class B: T.A() {
// INFO: {"checked": "true"}
val y: Int get() = 2
// INFO: {"checked": "true"}
val z: Int by lazy { 3 }
// INFO: {"checked": "true"}
abstract val t: Int
// INFO: {"checked": "true"}
override fun foo(n: Int): Boolean = n > 0
// INFO: {"checked": "true"}
inner class X {
}
// INFO: {"checked": "true"}
class Y {
}
}
@@ -0,0 +1,3 @@
class A implements Z {
}
@@ -0,0 +1,3 @@
class A implements Z, X {
}
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X
// INFO: {"checked": "false"}
interface Y
// INFO: {"checked": "true"}
interface Z
class <caret>B: A(), X, Y, Z
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X
// INFO: {"checked": "false"}
interface Y
// INFO: {"checked": "true"}
interface Z
class B: A(), Y
@@ -0,0 +1,3 @@
interface I extends Z {
}
@@ -0,0 +1,3 @@
interface I extends Z, X {
}
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X
// INFO: {"checked": "false"}
interface Y
// INFO: {"checked": "true"}
interface Z
class <caret>B: I, X, Y, Z
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X
// INFO: {"checked": "false"}
interface Y
// INFO: {"checked": "true"}
interface Z
class B: I, Y
@@ -0,0 +1,3 @@
class A<T> implements Z<T> {
}
@@ -0,0 +1,3 @@
class A<T> implements Z<T>, X, Y<T> {
}
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X<T, U>
// INFO: {"checked": "true"}
interface Y<V : Any>
// INFO: {"checked": "true"}
interface Z<T>
class <caret>B<S : Any, U : S, V>: A<S>(), X<U, V>, Y<S>, Z<U>
@@ -0,0 +1,10 @@
// INFO: {"checked": "true"}
interface X<T, U>
// INFO: {"checked": "true"}
interface Y<V : Any>
// INFO: {"checked": "true"}
interface Z<T>
class B<S : Any, U : S, V>: A<S>()
@@ -0,0 +1,3 @@
interface I {
}
@@ -0,0 +1,4 @@
interface I {
int foo();
}
@@ -0,0 +1,4 @@
class <caret>A: I {
// INFO: {"checked": "true"}
public fun foo(): Int = 1
}
@@ -0,0 +1,4 @@
class A: I {
// INFO: {"checked": "true"}
override fun foo(): Int = 1
}
@@ -0,0 +1,3 @@
class A {
}
@@ -0,0 +1,4 @@
abstract class A {
protected abstract int foo();
}
@@ -0,0 +1,6 @@
class <caret>B: A() {
// INFO: {"checked": "true"}
private fun foo(): Int = 1
fun bar() = foo() + 1
}
@@ -0,0 +1,6 @@
class B: A() {
// INFO: {"checked": "true"}
protected override fun foo(): Int = 1
fun bar() = foo() + 1
}