From 5c3577dfed0e6ad9ba3ec8eef9a0b2e991e3c015 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 20 Jun 2013 20:27:34 +0400 Subject: [PATCH] Added tests with SAM adapter overridden in Java class. --- .../samAdapters/inheritedOverriddenAdapter.java | 13 +++++++++++++ .../samAdapters/inheritedOverriddenAdapter.kt | 15 +++++++++++++++ .../adapter/InheritedOverriddenAdapter.java | 13 +++++++++++++ .../adapter/InheritedOverriddenAdapter.txt | 16 ++++++++++++++++ .../generated/AbstractBlackBoxCodegenTest.java | 2 +- .../BlackBoxWithJavaCodegenTestGenerated.java | 5 +++++ .../jet/jvm/compiler/LoadJavaTestGenerated.java | 5 +++++ 7 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.java create mode 100644 compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.kt create mode 100644 compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.java create mode 100644 compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.txt diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.java b/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.java new file mode 100644 index 00000000000..811b88e37d6 --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.java @@ -0,0 +1,13 @@ +class Super { + public String lastCalled = null; + + void foo(Runnable r) { + lastCalled = "super"; + } +} + +class Sub extends Super { + void foo(jet.Function0 r) { + lastCalled = "sub"; + } +} diff --git a/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.kt b/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.kt new file mode 100644 index 00000000000..619f4dd047e --- /dev/null +++ b/compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.kt @@ -0,0 +1,15 @@ +fun box(): String { + val sub = Sub() + + (sub : Super).foo{ } + if (sub.lastCalled != "super") { + return "FAIL: ${sub.lastCalled} instead of super" + } + + sub.foo{ } + if (sub.lastCalled != "sub") { + return "FAIL: ${sub.lastCalled} instead of sub" + } + + return "OK" +} diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.java b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.java new file mode 100644 index 00000000000..824fa9b6588 --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.java @@ -0,0 +1,13 @@ +package test; + +public interface InheritedOverriddenAdapter { + public class Super { + public void foo(Runnable r) { + } + } + + public class Sub extends Super { + public void foo(jet.Function0 r) { + } + } +} diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.txt b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.txt new file mode 100644 index 00000000000..a504c87944d --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.txt @@ -0,0 +1,16 @@ +package test + +public trait InheritedOverriddenAdapter : java.lang.Object { + + public open class Sub : test.InheritedOverriddenAdapter.Super { + public constructor Sub() + public open override /*1*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public open override /*1*/ /*fake_override*/ fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit + } + + public open class Super : java.lang.Object { + public constructor Super() + public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit + } +} diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java b/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java index b5a729460be..0a610711985 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/AbstractBlackBoxCodegenTest.java @@ -80,7 +80,7 @@ public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { File javaClassesTempDirectory = compileJava(ktFile.replaceFirst("\\.kt$", ".java")); myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), JetTestUtils.compilerConfigurationForTests( - ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory)); + ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory)); loadFile(ktFile); blackBox(); diff --git a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java index 5b1c2e481f1..dfcc1d8ba5c 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/codegen/generated/BlackBoxWithJavaCodegenTestGenerated.java @@ -150,6 +150,11 @@ public class BlackBoxWithJavaCodegenTestGenerated extends AbstractBlackBoxCodege doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/fileFilter.kt"); } + @TestMetadata("inheritedOverriddenAdapter.kt") + public void testInheritedOverriddenAdapter() throws Exception { + doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/inheritedOverriddenAdapter.kt"); + } + @TestMetadata("inheritedSimple.kt") public void testInheritedSimple() throws Exception { doTestWithJava("compiler/testData/codegen/boxWithJava/samAdapters/inheritedSimple.kt"); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java index 6c8a9be0062..4dbceb0877e 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java @@ -1274,6 +1274,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest { doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverridden.java"); } + @TestMetadata("InheritedOverriddenAdapter.java") + public void testInheritedOverriddenAdapter() throws Exception { + doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedOverriddenAdapter.java"); + } + @TestMetadata("InheritedSimple.java") public void testInheritedSimple() throws Exception { doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/InheritedSimple.java");