From 00bed4a2a4bcdbffb97517f4afa84375ed7268a7 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 13 Nov 2012 15:09:26 +0400 Subject: [PATCH] Added tests with two superclasses. #KT-2776 in progress --- .../TwoSuperclassesReturnJavaSubtype.java | 19 +++++++++++++++++++ .../TwoSuperclassesReturnJavaSubtype.kt | 15 +++++++++++++++ .../TwoSuperclassesReturnJavaSubtype.txt | 11 +++++++++++ .../TwoSuperclassesReturnSameJavaType.java | 19 +++++++++++++++++++ .../TwoSuperclassesReturnSameJavaType.kt | 15 +++++++++++++++ .../TwoSuperclassesReturnSameJavaType.txt | 11 +++++++++++ .../jvm/compiler/LoadJavaTestGenerated.java | 10 ++++++++++ ...esolveNamespaceComparingTestGenerated.java | 10 ++++++++++ 8 files changed, 110 insertions(+) create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.java create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.kt create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.txt create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.java create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.kt create mode 100644 compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.txt diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.java b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.java new file mode 100644 index 00000000000..08381534b0e --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.java @@ -0,0 +1,19 @@ +package test; + +import org.jetbrains.annotations.NotNull; +import java.lang.CharSequence; + +import jet.runtime.typeinfo.KotlinSignature; + +public interface TwoSuperclassesReturnJavaSubtype { + public CharSequence foo(); + + public interface Other { + @NotNull + public CharSequence foo(); + } + + public interface Sub extends TwoSuperclassesReturnJavaSubtype, Other { + public String foo(); + } +} \ No newline at end of file diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.kt b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.kt new file mode 100644 index 00000000000..349d88c1a94 --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.kt @@ -0,0 +1,15 @@ +package test + +import org.jetbrains.annotations.NotNull + +public trait TwoSuperclassesReturnJavaSubtype: Object { + public fun foo(): CharSequence? + + public trait Other: Object { + public fun foo(): CharSequence + } + + public trait Sub: TwoSuperclassesReturnJavaSubtype, Other { + override fun foo(): String + } +} \ No newline at end of file diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.txt b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.txt new file mode 100644 index 00000000000..f32a470dc89 --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.txt @@ -0,0 +1,11 @@ +namespace test + +public abstract trait test.TwoSuperclassesReturnJavaSubtype : java.lang.Object { + public abstract fun foo(): jet.CharSequence? + public abstract trait test.TwoSuperclassesReturnJavaSubtype.Other : java.lang.Object { + public abstract fun foo(): jet.CharSequence + } + public abstract trait test.TwoSuperclassesReturnJavaSubtype.Sub : test.TwoSuperclassesReturnJavaSubtype, test.TwoSuperclassesReturnJavaSubtype.Other { + public abstract override /*2*/ fun foo(): jet.String + } +} diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.java b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.java new file mode 100644 index 00000000000..a4eae041fca --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.java @@ -0,0 +1,19 @@ +package test; + +import org.jetbrains.annotations.NotNull; +import java.lang.CharSequence; + +import jet.runtime.typeinfo.KotlinSignature; + +public interface TwoSuperclassesReturnSameJavaType { + public CharSequence foo(); + + public interface Other { + @NotNull + public CharSequence foo(); + } + + public interface Sub extends TwoSuperclassesReturnSameJavaType, Other { + public CharSequence foo(); + } +} \ No newline at end of file diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.kt b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.kt new file mode 100644 index 00000000000..ea58ce4172c --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.kt @@ -0,0 +1,15 @@ +package test + +import org.jetbrains.annotations.NotNull + +public trait TwoSuperclassesReturnSameJavaType: Object { + public fun foo(): CharSequence? + + public trait Other: Object { + public fun foo(): CharSequence + } + + public trait Sub: TwoSuperclassesReturnSameJavaType, Other { + override fun foo(): CharSequence + } +} \ No newline at end of file diff --git a/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.txt b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.txt new file mode 100644 index 00000000000..699d5684d13 --- /dev/null +++ b/compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.txt @@ -0,0 +1,11 @@ +namespace test + +public abstract trait test.TwoSuperclassesReturnSameJavaType : java.lang.Object { + public abstract fun foo(): jet.CharSequence? + public abstract trait test.TwoSuperclassesReturnSameJavaType.Other : java.lang.Object { + public abstract fun foo(): jet.CharSequence + } + public abstract trait test.TwoSuperclassesReturnSameJavaType.Sub : test.TwoSuperclassesReturnSameJavaType, test.TwoSuperclassesReturnSameJavaType.Other { + public abstract override /*2*/ fun foo(): jet.CharSequence + } +} diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java index b28946d7ecf..3afc7617747 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java @@ -521,6 +521,16 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest { doTest("compiler/testData/loadJava/kotlinSignature/propagation/return/InheritVariance.java"); } + @TestMetadata("TwoSuperclassesReturnJavaSubtype.java") + public void testTwoSuperclassesReturnJavaSubtype() throws Exception { + doTest("compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.java"); + } + + @TestMetadata("TwoSuperclassesReturnSameJavaType.java") + public void testTwoSuperclassesReturnSameJavaType() throws Exception { + doTest("compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.java"); + } + } public static Test innerSuite() { diff --git a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java index e09ebd224b6..95053d20689 100644 --- a/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/lang/resolve/lazy/LazyResolveNamespaceComparingTestGenerated.java @@ -1416,6 +1416,16 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/propagation/return/InheritVariance.kt"); } + @TestMetadata("TwoSuperclassesReturnJavaSubtype.kt") + public void testTwoSuperclassesReturnJavaSubtype() throws Exception { + doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnJavaSubtype.kt"); + } + + @TestMetadata("TwoSuperclassesReturnSameJavaType.kt") + public void testTwoSuperclassesReturnSameJavaType() throws Exception { + doTestSinglePackage("compiler/testData/loadJava/kotlinSignature/propagation/return/TwoSuperclassesReturnSameJavaType.kt"); + } + } public static Test innerSuite() {