From 33fd247bde8f9df3fb6ca5b920180faaf947ef46 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 9 Nov 2015 22:32:39 +0300 Subject: [PATCH] Test that fails with package prefixes but works good without them --- .../kotlin/jps/build/KotlinJpsBuildTest.kt | 10 +++++++++- .../kotlinProject.iml | 12 ++++++++++++ .../kotlinProject.ipr | 14 ++++++++++++++ .../src/JavaWithInner.java | 14 ++++++++++++++ .../src/test.kt | 3 +++ 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.iml create mode 100644 jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.ipr create mode 100644 jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/JavaWithInner.java create mode 100644 jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/test.kt diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt index f6a96f4e6e4..6940ee5df17 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/KotlinJpsBuildTest.kt @@ -228,7 +228,7 @@ public class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { public fun testSourcePackagePrefix() { doTest() } - + public fun testSourcePackageLongPrefix() { initProject() val buildResult = makeAll() @@ -238,6 +238,14 @@ public class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { assertEquals("Invalid package prefix name is ignored: invalid-prefix.test", warnings.first().messageText) } + public fun testSourcePackagePrefixKnownIssueWithInnerClasses() { + initProject() + val buildResult = makeAll() + buildResult.assertFailed() + val errors = buildResult.getMessages(BuildMessage.Kind.ERROR).map { it.messageText } + assertTrue("Message wasn't found. $errors", errors.first().contains("class xxx.JavaWithInner.TextRenderer, unresolved supertypes: TableRow")) + } + public fun testKotlinJavaScriptProject() { initProject() addKotlinJavaScriptStdlibDependency() diff --git a/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.iml b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.iml new file mode 100644 index 00000000000..cbc89b8246b --- /dev/null +++ b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.ipr b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.ipr new file mode 100644 index 00000000000..90747786771 --- /dev/null +++ b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/kotlinProject.ipr @@ -0,0 +1,14 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/JavaWithInner.java b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/JavaWithInner.java new file mode 100644 index 00000000000..d210fa6a2d7 --- /dev/null +++ b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/JavaWithInner.java @@ -0,0 +1,14 @@ +package xxx; + +import xxx.JavaWithInner.TableRenderer.TableRow; + +public class JavaWithInner { + public static class TableRenderer{ + public interface TableRow { + } + } + + public static class TextRenderer implements TableRow { + public void method() {} + } +} \ No newline at end of file diff --git a/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/test.kt b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/test.kt new file mode 100644 index 00000000000..eaca9b80696 --- /dev/null +++ b/jps-plugin/testData/general/SourcePackagePrefixKnownIssueWithInnerClasses/src/test.kt @@ -0,0 +1,3 @@ +package xxx + +val test = JavaWithInner.TextRenderer().method() \ No newline at end of file