From 955fe9e1e6ad5994a41f448cf6ad6a506d27151e Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 13 Feb 2017 19:11:27 +0300 Subject: [PATCH] Light class tests: add tests - test Jvm* annotations with wrong arguments - test JvmStatic annotation - test JvmName annotation --- .../asJava/lightClasses/JvmNameOnMember.java | 9 +++++ .../asJava/lightClasses/JvmNameOnMember.kt | 12 +++++++ .../asJava/lightClasses/JvmStatic.java | 24 ++++++++++++++ .../testData/asJava/lightClasses/JvmStatic.kt | 16 +++++++++ .../compilationErrors/WrongAnnotations.java | 30 +++++++++++++++++ .../compilationErrors/WrongAnnotations.kt | 33 +++++++++++++++++++ .../CompilerLightClassTestGenerated.java | 18 ++++++++++ .../IdeCompiledLightClassTestGenerated.java | 12 +++++++ .../resolve/IdeLightClassTestGenerated.java | 18 ++++++++++ 9 files changed, 172 insertions(+) create mode 100644 compiler/testData/asJava/lightClasses/JvmNameOnMember.java create mode 100644 compiler/testData/asJava/lightClasses/JvmNameOnMember.kt create mode 100644 compiler/testData/asJava/lightClasses/JvmStatic.java create mode 100644 compiler/testData/asJava/lightClasses/JvmStatic.kt create mode 100644 compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.java create mode 100644 compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt diff --git a/compiler/testData/asJava/lightClasses/JvmNameOnMember.java b/compiler/testData/asJava/lightClasses/JvmNameOnMember.java new file mode 100644 index 00000000000..a47195ef1a3 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/JvmNameOnMember.java @@ -0,0 +1,9 @@ +public final class C { + @kotlin.jvm.JvmName(name = "myFun") + public final void myFun(@org.jetbrains.annotations.NotNull C c) { /* compiled code */ } + + @kotlin.jvm.JvmName(name = "myFun") + public final void myFun(@org.jetbrains.annotations.NotNull C c, @org.jetbrains.annotations.NotNull C c2) { /* compiled code */ } + + public C() { /* compiled code */ } +} diff --git a/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt b/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt new file mode 100644 index 00000000000..fa25af9167e --- /dev/null +++ b/compiler/testData/asJava/lightClasses/JvmNameOnMember.kt @@ -0,0 +1,12 @@ +// C +class C { + @JvmName("myFun") + fun g(c: C) { + + } + + @JvmName("myFun") + fun z(c: C, c2: C) { + + } +} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/JvmStatic.java b/compiler/testData/asJava/lightClasses/JvmStatic.java new file mode 100644 index 00000000000..5f10cf58883 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/JvmStatic.java @@ -0,0 +1,24 @@ +public final class A { + public static final A.Companion Companion; + + public A() { /* compiled code */ } + + @kotlin.jvm.JvmStatic + public static final void f() { /* compiled code */ } + + public static final class B { + public static final A.B INSTANCE; + + @kotlin.jvm.JvmStatic + public static final void g() { /* compiled code */ } + + private B() { /* compiled code */ } + } + + public static final class Companion { + @kotlin.jvm.JvmStatic + public final void f() { /* compiled code */ } + + private Companion() { /* compiled code */ } + } +} diff --git a/compiler/testData/asJava/lightClasses/JvmStatic.kt b/compiler/testData/asJava/lightClasses/JvmStatic.kt new file mode 100644 index 00000000000..114c1b51d86 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/JvmStatic.kt @@ -0,0 +1,16 @@ +// A + +class A { + companion object { + @JvmStatic fun f() { + + } + } + + object B { + @JvmStatic + fun g() { + + } + } +} \ No newline at end of file diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.java b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.java new file mode 100644 index 00000000000..61fe83fbc48 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.java @@ -0,0 +1,30 @@ +public final class A { + public static final A.Companion Companion; + + public A() { /* compiled code */ } + + @kotlin.jvm.JvmStatic + public static final void f3() { /* compiled code */ } + + public static final class Companion { + @kotlin.jvm.JvmName(name = "realName") + public final void realName() { /* compiled code */ } + + @kotlin.jvm.JvmName(name = 1) + public final void f2() { /* compiled code */ } + + @kotlin.jvm.JvmStatic + public final void f3() { /* compiled code */ } + + @kotlin.jvm.JvmName + public final void f4() { /* compiled code */ } + + @kotlin.jvm.JvmOverloads + public final void f5() { /* compiled code */ } + + @kotlin.jvm.JvmOverloads + public final void f6() { /* compiled code */ } + + private Companion() { /* compiled code */ } + } +} diff --git a/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt new file mode 100644 index 00000000000..40f35f41289 --- /dev/null +++ b/compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt @@ -0,0 +1,33 @@ +// A + +class A { + companion object { + @JvmName("realName") + fun f1() { + + } + + @JvmName(1) + fun f2() {} + + @JvmStatic(3) + fun f3() { + + } + + @JvmName + fun f4() { + + } + + @JvmOverloads(1, 2, 3, 4) + fun f5() { + + } + + @JvmOverloads("arg") + fun f6() { + + } + } +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java index 5b28dd928ef..7a3f3497e49 100644 --- a/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/asJava/CompilerLightClassTestGenerated.java @@ -60,6 +60,18 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT doTest(fileName); } + @TestMetadata("JvmNameOnMember.kt") + public void testJvmNameOnMember() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmNameOnMember.kt"); + doTest(fileName); + } + + @TestMetadata("JvmStatic.kt") + public void testJvmStatic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmStatic.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/compilationErrors") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -73,6 +85,12 @@ public class CompilerLightClassTestGenerated extends AbstractCompilerLightClassT String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/compilationErrors/TopLevelDestructuring.kt"); doTest(fileName); } + + @TestMetadata("WrongAnnotations.kt") + public void testWrongAnnotations() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt"); + doTest(fileName); + } } @TestMetadata("compiler/testData/asJava/lightClasses/delegation") diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java index b007854208c..0e9571b6f2e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeCompiledLightClassTestGenerated.java @@ -60,6 +60,18 @@ public class IdeCompiledLightClassTestGenerated extends AbstractIdeCompiledLight doTest(fileName); } + @TestMetadata("JvmNameOnMember.kt") + public void testJvmNameOnMember() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmNameOnMember.kt"); + doTest(fileName); + } + + @TestMetadata("JvmStatic.kt") + public void testJvmStatic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmStatic.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/delegation") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java index b6f6a51e369..a64fe0dbfc0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeLightClassTestGenerated.java @@ -60,6 +60,18 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { doTest(fileName); } + @TestMetadata("JvmNameOnMember.kt") + public void testJvmNameOnMember() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmNameOnMember.kt"); + doTest(fileName); + } + + @TestMetadata("JvmStatic.kt") + public void testJvmStatic() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/JvmStatic.kt"); + doTest(fileName); + } + @TestMetadata("compiler/testData/asJava/lightClasses/compilationErrors") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -73,6 +85,12 @@ public class IdeLightClassTestGenerated extends AbstractIdeLightClassTest { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/compilationErrors/TopLevelDestructuring.kt"); doTest(fileName); } + + @TestMetadata("WrongAnnotations.kt") + public void testWrongAnnotations() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/asJava/lightClasses/compilationErrors/WrongAnnotations.kt"); + doTest(fileName); + } } @TestMetadata("compiler/testData/asJava/lightClasses/facades")