aboutsummaryrefslogtreecommitdiff
path: root/test-utils/testData/api/javaModifiers.kt
diff options
context:
space:
mode:
Diffstat (limited to 'test-utils/testData/api/javaModifiers.kt')
-rw-r--r--test-utils/testData/api/javaModifiers.kt244
1 files changed, 244 insertions, 0 deletions
diff --git a/test-utils/testData/api/javaModifiers.kt b/test-utils/testData/api/javaModifiers.kt
new file mode 100644
index 00000000..04aa1c0d
--- /dev/null
+++ b/test-utils/testData/api/javaModifiers.kt
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2020 Google LLC
+ * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// TEST PROCESSOR: JavaModifierProcessor
+// EXPECTED:
+// C: ABSTRACT PUBLIC : ABSTRACT PUBLIC
+// C.staticStr: PRIVATE : PRIVATE
+// C.s1: FINAL JAVA_TRANSIENT : FINAL JAVA_TRANSIENT
+// C.i1: JAVA_STATIC JAVA_VOLATILE PROTECTED : JAVA_STATIC JAVA_VOLATILE PROTECTED
+// C.NestedC: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
+// NestedC.<init>: FINAL PUBLIC : FINAL PUBLIC
+// C.InnerC: PUBLIC : PUBLIC
+// InnerC.<init>: FINAL PUBLIC : FINAL PUBLIC
+// C.intFun: JAVA_DEFAULT JAVA_SYNCHRONIZED : JAVA_DEFAULT JAVA_SYNCHRONIZED
+// C.foo: ABSTRACT JAVA_STRICT : ABSTRACT JAVA_STRICT
+// C.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterJavaClass: PUBLIC : PUBLIC
+// OuterJavaClass.staticPublicField: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
+// OuterJavaClass.staticPackageProtectedField: JAVA_STATIC : JAVA_STATIC
+// OuterJavaClass.staticProtectedField: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
+// OuterJavaClass.staticPrivateField: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
+// OuterJavaClass.InnerJavaClass: PUBLIC : PUBLIC
+// InnerJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterJavaClass.NestedJavaClass: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
+// NestedJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterJavaClass.staticPublicMethod: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
+// OuterJavaClass.staticPackageProtectedMethod: JAVA_STATIC : JAVA_STATIC
+// OuterJavaClass.staticProtectedMethod: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
+// OuterJavaClass.staticPrivateMethod: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
+// OuterJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterKotlinClass: OPEN : PUBLIC
+// OuterKotlinClass.InnerKotlinClass: INNER : FINAL PUBLIC
+// InnerKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterKotlinClass.NestedKotlinClass: OPEN : PUBLIC
+// NestedKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterKotlinClass.Companion: : FINAL JAVA_STATIC PUBLIC
+// Companion.companionMethod: : FINAL PUBLIC
+// Companion.companionField: CONST : FINAL PUBLIC
+// Companion.privateCompanionMethod: PRIVATE : FINAL PRIVATE
+// Companion.privateCompanionField: PRIVATE : FINAL PRIVATE
+// Companion.jvmStaticCompanionMethod: : FINAL JAVA_STATIC PUBLIC
+// Companion.jvmStaticCompanionField: : FINAL JAVA_STATIC PUBLIC
+// Companion.customJvmStaticCompanionMethod: : FINAL PUBLIC
+// Companion.customJvmStaticCompanionField: : FINAL PUBLIC
+// Companion.<init>: FINAL PUBLIC : FINAL PUBLIC
+// OuterKotlinClass.transientProperty: : FINAL JAVA_TRANSIENT PUBLIC
+// OuterKotlinClass.volatileProperty: : FINAL JAVA_VOLATILE PUBLIC
+// OuterKotlinClass.strictfpFun: : FINAL JAVA_STRICT PUBLIC
+// OuterKotlinClass.synchronizedFun: : FINAL JAVA_SYNCHRONIZED PUBLIC
+// OuterKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterJavaClass: OPEN PUBLIC : PUBLIC
+// DependencyOuterJavaClass.DependencyNestedJavaClass: OPEN PUBLIC : PUBLIC
+// DependencyNestedJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterJavaClass.DependencyInnerJavaClass: INNER OPEN PUBLIC : PUBLIC
+// DependencyInnerJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterJavaClass.synchronizedFun: JAVA_SYNCHRONIZED OPEN : JAVA_SYNCHRONIZED
+// DependencyOuterJavaClass.strictfpFun: JAVA_STRICT OPEN : JAVA_STRICT
+// DependencyOuterJavaClass.transientField: FINAL JAVA_TRANSIENT : FINAL JAVA_TRANSIENT
+// DependencyOuterJavaClass.volatileField: FINAL JAVA_VOLATILE : FINAL JAVA_VOLATILE
+// DependencyOuterJavaClass.staticPublicMethod: JAVA_STATIC PUBLIC : JAVA_STATIC PUBLIC
+// DependencyOuterJavaClass.staticPackageProtectedMethod: JAVA_STATIC : JAVA_STATIC
+// DependencyOuterJavaClass.staticProtectedMethod: JAVA_STATIC PROTECTED : JAVA_STATIC PROTECTED
+// DependencyOuterJavaClass.staticPrivateMethod: JAVA_STATIC PRIVATE : JAVA_STATIC PRIVATE
+// DependencyOuterJavaClass.staticPublicField: FINAL JAVA_STATIC PUBLIC : FINAL JAVA_STATIC PUBLIC
+// DependencyOuterJavaClass.staticPackageProtectedField: FINAL JAVA_STATIC : FINAL JAVA_STATIC
+// DependencyOuterJavaClass.staticProtectedField: FINAL JAVA_STATIC PROTECTED : FINAL JAVA_STATIC PROTECTED
+// DependencyOuterJavaClass.staticPrivateField: FINAL JAVA_STATIC PRIVATE : FINAL JAVA_STATIC PRIVATE
+// DependencyOuterJavaClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterKotlinClass: OPEN PUBLIC : PUBLIC
+// DependencyOuterKotlinClass.transientProperty: FINAL PUBLIC : FINAL JAVA_TRANSIENT PUBLIC
+// DependencyOuterKotlinClass.volatileProperty: FINAL PUBLIC : FINAL JAVA_VOLATILE PUBLIC
+// DependencyOuterKotlinClass.strictfpFun: FINAL PUBLIC : FINAL JAVA_STRICT PUBLIC
+// DependencyOuterKotlinClass.synchronizedFun: FINAL PUBLIC : FINAL JAVA_SYNCHRONIZED PUBLIC
+// DependencyOuterKotlinClass.Companion: FINAL PUBLIC : FINAL PUBLIC
+// Companion.companionField: FINAL PUBLIC : FINAL PUBLIC
+// Companion.customJvmStaticCompanionField: FINAL PUBLIC : FINAL PUBLIC
+// Companion.jvmStaticCompanionField: FINAL PUBLIC : FINAL PUBLIC
+// Companion.privateCompanionField: FINAL PUBLIC : FINAL PUBLIC
+// Companion.companionMethod: FINAL PUBLIC : FINAL PUBLIC
+// Companion.customJvmStaticCompanionMethod: FINAL PUBLIC : FINAL PUBLIC
+// Companion.jvmStaticCompanionMethod: FINAL PUBLIC : FINAL PUBLIC
+// Companion.privateCompanionMethod: FINAL PRIVATE : FINAL PRIVATE
+// Companion.<init>: FINAL PRIVATE : FINAL PRIVATE
+// DependencyOuterKotlinClass.DependencyInnerKotlinClass: FINAL INNER PUBLIC : FINAL PUBLIC
+// DependencyInnerKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterKotlinClass.DependencyNestedKotlinClass: OPEN PUBLIC : PUBLIC
+// DependencyNestedKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// DependencyOuterKotlinClass.<init>: FINAL PUBLIC : FINAL PUBLIC
+// END
+// MODULE: module1
+// FILE: DependencyOuterJavaClass.java
+public class DependencyOuterJavaClass {
+ public class DependencyInnerJavaClass {}
+ public static class DependencyNestedJavaClass {}
+ public static void staticPublicMethod() {}
+ public static String staticPublicField;
+ static void staticPackageProtectedMethod() {}
+ static String staticPackageProtectedField;
+ protected static void staticProtectedMethod() {}
+ protected static String staticProtectedField;
+ private static void staticPrivateMethod() {}
+ private static String staticPrivateField;
+ transient String transientField = "";
+ volatile String volatileField = "";
+ synchronized String synchronizedFun() { return ""; }
+ strictfp String strictfpFun() { return ""; }
+}
+// FILE: DependencyOuterKotlinClass.kt
+typealias DependencyCustomJvmStatic=JvmStatic
+open class DependencyOuterKotlinClass {
+ inner class DependencyInnerKotlinClass
+ open class DependencyNestedKotlinClass
+ companion object {
+ fun companionMethod() {}
+ val companionField:String = ""
+ private fun privateCompanionMethod() {}
+ val privateCompanionField:String = ""
+ @JvmStatic
+ fun jvmStaticCompanionMethod() {}
+ @JvmStatic
+ val jvmStaticCompanionField:String = ""
+ @DependencyCustomJvmStatic
+ fun customJvmStaticCompanionMethod() {}
+ @DependencyCustomJvmStatic
+ val customJvmStaticCompanionField:String = ""
+ }
+
+ @Transient
+ val transientProperty: String = ""
+
+ @Volatile
+ var volatileProperty: String = ""
+
+ @Strictfp
+ fun strictfpFun(): String = ""
+
+ @Synchronized
+ fun synchronizedFun(): String = ""
+}
+// MODULE: main(module1)
+// FILE: a.kt
+annotation class Test
+
+@Test
+class Foo : C() {
+
+}
+
+@Test
+class Bar : OuterJavaClass()
+
+@Test
+class Baz : OuterKotlinClass()
+
+@Test
+class JavaDependency : DependencyOuterJavaClass()
+
+@Test
+class KotlinDependency : DependencyOuterKotlinClass()
+
+// FILE: C.java
+
+public abstract class C {
+
+ private String staticStr = "str"
+
+ final transient String s1;
+
+ protected static volatile int i1;
+
+ default synchronized int intFun() {
+ return 1;
+ }
+
+ abstract strictfp void foo() {}
+
+ public static class NestedC {
+
+ }
+
+ public class InnerC {
+
+ }
+}
+
+// FILE: OuterJavaClass.java
+public class OuterJavaClass {
+ public class InnerJavaClass {}
+ public static class NestedJavaClass {}
+ public static void staticPublicMethod() {}
+ public static String staticPublicField;
+ static void staticPackageProtectedMethod() {}
+ static String staticPackageProtectedField;
+ protected static void staticProtectedMethod() {}
+ protected static String staticProtectedField;
+ private static void staticPrivateMethod() {}
+ private static String staticPrivateField;
+}
+// FILE: OuterKotlinClass.kt
+typealias CustomJvmStatic=JvmStatic
+open class OuterKotlinClass {
+ inner class InnerKotlinClass
+ open class NestedKotlinClass
+ companion object {
+ fun companionMethod() {}
+ const val companionField:String = ""
+ private fun privateCompanionMethod() {}
+ private val privateCompanionField:String = ""
+ @JvmStatic
+ fun jvmStaticCompanionMethod() {}
+ @JvmStatic
+ val jvmStaticCompanionField:String = ""
+ @CustomJvmStatic
+ fun customJvmStaticCompanionMethod() {}
+ @CustomJvmStatic
+ val customJvmStaticCompanionField:String = ""
+ }
+
+ @Transient
+ val transientProperty: String = ""
+
+ @Volatile
+ var volatileProperty: String = ""
+
+ @Strictfp
+ fun strictfpFun(): String = ""
+
+ @Synchronized
+ fun synchronizedFun(): String = ""
+}