From cfc99b941a1607349b49575a46aa08a2950ef94a Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Fri, 7 Jun 2013 19:51:22 +0400 Subject: [PATCH] Added test for ambiguous SAM adapters within one class. --- .../tests/j+k/ambiguousSamAdapters.kt | 18 ++++++++++++++++++ .../adapter/AmbiguousAdapters.java | 11 +++++++++++ .../adapter/AmbiguousAdapters.txt | 9 +++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 5 +++++ .../jvm/compiler/LoadJavaTestGenerated.java | 5 +++++ 5 files changed, 48 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt create mode 100644 compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.java create mode 100644 compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.txt diff --git a/compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt b/compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt new file mode 100644 index 00000000000..3862b810009 --- /dev/null +++ b/compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt @@ -0,0 +1,18 @@ +// FILE: A.java +import java.io.Closeable; + +public class A { + public static void foo(Runnable r) { + } + + public static void foo(Closeable c) { + } +} + +// FILE: test.kt + +fun main() { + A.foo { "Hello!" } + A.foo(Runnable { "Hello!" }) +} + diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.java b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.java new file mode 100644 index 00000000000..a30e22636d6 --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.java @@ -0,0 +1,11 @@ +package test; + +import java.io.Closeable; + +public class AmbiguousAdapters { + public void foo(Runnable r) { + } + + public void foo(Closeable c) { + } +} diff --git a/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.txt b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.txt new file mode 100644 index 00000000000..8285524a2cb --- /dev/null +++ b/compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.txt @@ -0,0 +1,9 @@ +package test + +public open class AmbiguousAdapters : java.lang.Object { + public constructor AmbiguousAdapters() + public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public open /*synthesized*/ fun foo(/*0*/ p0: (() -> jet.Unit)?): jet.Unit + public open fun foo(/*0*/ p0: java.io.Closeable?): jet.Unit + public open fun foo(/*0*/ p0: java.lang.Runnable?): jet.Unit +} diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 0ea7d1a1d8c..4c08680cbe5 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -3224,6 +3224,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/diagnostics/tests/j+k"), Pattern.compile("^(.+)\\.kt$"), true); } + @TestMetadata("ambiguousSamAdapters.kt") + public void testAmbiguousSamAdapters() throws Exception { + doTest("compiler/testData/diagnostics/tests/j+k/ambiguousSamAdapters.kt"); + } + @TestMetadata("innerNestedClassFromJava.kt") public void testInnerNestedClassFromJava() throws Exception { doTest("compiler/testData/diagnostics/tests/j+k/innerNestedClassFromJava.kt"); diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java index 65c21f08fae..544c3e4295a 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadJavaTestGenerated.java @@ -1234,6 +1234,11 @@ public class LoadJavaTestGenerated extends AbstractLoadJavaTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter"), Pattern.compile("^(.+)\\.java$"), true); } + @TestMetadata("AmbiguousAdapters.java") + public void testAmbiguousAdapters() throws Exception { + doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/AmbiguousAdapters.java"); + } + @TestMetadata("Basic.java") public void testBasic() throws Exception { doTestCompiledJava("compiler/testData/loadJava/compiledJava/singleAbstractMethod/adapter/Basic.java");