From 4c8b75928e2d3731ad62c7e00018e5f83e98a9a4 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 3 Jul 2015 01:33:11 +0300 Subject: [PATCH] Added tests #KT-6179 Fixed #KT-8132 Fixed --- .../diagnostics/tests/inference/regressions/kt8132.kt | 11 +++++++++++ .../tests/inference/regressions/kt8132.txt | 4 ++++ .../kotlin/checkers/JetDiagnosticsTestGenerated.java | 6 ++++++ .../testData/handlers/smart/kt6179filterTo.kt | 10 ++++++++++ .../testData/handlers/smart/kt6179filterTo.kt.after | 10 ++++++++++ .../handlers/SmartCompletionHandlerTestGenerated.java | 6 ++++++ 6 files changed, 47 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/inference/regressions/kt8132.kt create mode 100644 compiler/testData/diagnostics/tests/inference/regressions/kt8132.txt create mode 100644 idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt create mode 100644 idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt.after diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt8132.kt b/compiler/testData/diagnostics/tests/inference/regressions/kt8132.kt new file mode 100644 index 00000000000..03aa63118db --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt8132.kt @@ -0,0 +1,11 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// KT-8132 Can't omit lambda parameter types + +fun test(foo: List): T { + return if (true) + throw IllegalStateException() + else + foo.reduce { left, right -> left } // error: inferred type T is not subtype Nothing +} + +fun Iterable.reduce(operation: (S, T) -> S): S = throw Exception() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/regressions/kt8132.txt b/compiler/testData/diagnostics/tests/inference/regressions/kt8132.txt new file mode 100644 index 00000000000..4a0ea42f804 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/regressions/kt8132.txt @@ -0,0 +1,4 @@ +package + +internal fun test(/*0*/ foo: kotlin.List): T +internal fun kotlin.Iterable.reduce(/*0*/ operation: (S, T) -> S): S diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java index 52722331fd9..f636caee210 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/JetDiagnosticsTestGenerated.java @@ -7175,6 +7175,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest(fileName); } + @TestMetadata("kt8132.kt") + public void testKt8132() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/regressions/kt8132.kt"); + doTest(fileName); + } + @TestMetadata("kt832.kt") public void testKt832() throws Exception { String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/regressions/kt832.kt"); diff --git a/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt b/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt new file mode 100644 index 00000000000..bb10324dc66 --- /dev/null +++ b/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt @@ -0,0 +1,10 @@ +import java.util.ArrayList + +fun foo(c: Collection) { + val list = ArrayList() + c.filterTo0() +} + +fun > Iterable.filterTo0(destination: C, predicate: (T) -> Boolean): C = destination + +//ELEMENT: list \ No newline at end of file diff --git a/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt.after b/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt.after new file mode 100644 index 00000000000..8b056cd34df --- /dev/null +++ b/idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt.after @@ -0,0 +1,10 @@ +import java.util.ArrayList + +fun foo(c: Collection) { + val list = ArrayList() + c.filterTo0(list) +} + +fun > Iterable.filterTo0(destination: C, predicate: (T) -> Boolean): C = destination + +//ELEMENT: list \ No newline at end of file diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java index a1116032f39..f49c5a68b8a 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/handlers/SmartCompletionHandlerTestGenerated.java @@ -443,6 +443,12 @@ public class SmartCompletionHandlerTestGenerated extends AbstractSmartCompletion doTest(fileName); } + @TestMetadata("kt6179filterTo.kt") + public void testKt6179filterTo() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/smart/kt6179filterTo.kt"); + doTest(fileName); + } + @TestMetadata("Lambda1.kt") public void testLambda1() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/smart/Lambda1.kt");