[AllOpen] Reorganize module structure of AllOpen plugin

This scheme will be common for all compiler plugins with K1 and K2 support:
- `plugin-common` contains classes shared with K1 and K2 implementations (if any)
- `plugin-k1` contains implementation for K1 compiler
- `plugin-k2` contains implementation for K2 compiler
- `plugin-backend` contains implementation for backend extensions (if any)
- `plugin-cli` is module for registration of plugin in CLI compiler
- `plugin` is a root module with tests and all submodules embedded

This structure is needed to distinguish parts related to different frontends,
  which is needed for proper dependencies settings for Kotlin IDE plugins
This commit is contained in:
Dmitriy Novozhilov
2022-05-17 13:09:56 +03:00
committed by teamcity
parent 22ebea8174
commit 2a7dc1cc0c
52 changed files with 199 additions and 114 deletions
@@ -0,0 +1,19 @@
@AllOpen
annotation class AllOpen
@AllOpen
interface Intf
@AllOpen
object Obj
@AllOpen
enum class Enum
class MyClass {
@AllOpen
fun method() {}
@field:AllOpen @get:AllOpen @set:AllOpen
var prop: String = ""
}
@@ -0,0 +1,42 @@
@AllOpen
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'allOpenOnNotClasses.kt'
}
@AllOpen
@kotlin.Metadata
public enum class Enum {
// source: 'allOpenOnNotClasses.kt'
private synthetic final static field $VALUES: Enum[]
static method <clinit>(): void
private method <init>(p0: java.lang.String, p1: int): void
public static method valueOf(p0: java.lang.String): Enum
public static method values(): Enum[]
}
@AllOpen
@kotlin.Metadata
public interface Intf {
// source: 'allOpenOnNotClasses.kt'
}
@kotlin.Metadata
public final class MyClass {
// source: 'allOpenOnNotClasses.kt'
private @AllOpen @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public final @AllOpen @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public final @AllOpen method method(): void
public final @AllOpen method setProp(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
}
@AllOpen
@kotlin.Metadata
public final class Obj {
// source: 'allOpenOnNotClasses.kt'
public final static @org.jetbrains.annotations.NotNull field INSTANCE: Obj
static method <clinit>(): void
private method <init>(): void
}
@@ -0,0 +1,43 @@
@AllOpen
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'allOpenOnNotClasses.kt'
}
@AllOpen
@kotlin.Metadata
public final enum class Enum {
// source: 'allOpenOnNotClasses.kt'
private synthetic final static field $VALUES: Enum[]
private synthetic final static method $values(): Enum[]
static method <clinit>(): void
private method <init>(p0: java.lang.String, p1: int): void
public static method valueOf(p0: java.lang.String): Enum
public static method values(): Enum[]
}
@AllOpen
@kotlin.Metadata
public interface Intf {
// source: 'allOpenOnNotClasses.kt'
}
@kotlin.Metadata
public final class MyClass {
// source: 'allOpenOnNotClasses.kt'
private @AllOpen @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public final @AllOpen @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public final @AllOpen method method(): void
public final @AllOpen method setProp(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
}
@AllOpen
@kotlin.Metadata
public final class Obj {
// source: 'allOpenOnNotClasses.kt'
public final static @org.jetbrains.annotations.NotNull field INSTANCE: Obj
static method <clinit>(): void
private method <init>(): void
}
+16
View File
@@ -0,0 +1,16 @@
annotation class AllOpen
@AllOpen
open class Test1
@AllOpen
open class Test2 {
open fun method() {}
val prop: String = ""
}
@AllOpen
class Test3 {
fun method() {}
open val prop: String = ""
}
@@ -0,0 +1,32 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'alreadyOpen.kt'
}
@AllOpen
@kotlin.Metadata
public class Test1 {
// source: 'alreadyOpen.kt'
public method <init>(): void
}
@AllOpen
@kotlin.Metadata
public class Test2 {
// source: 'alreadyOpen.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public method method(): void
}
@AllOpen
@kotlin.Metadata
public class Test3 {
// source: 'alreadyOpen.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public method method(): void
}
@@ -0,0 +1,18 @@
// WITH_STDLIB
annotation class AllOpen
annotation class Plain(val name: String, val index: Int) {
companion object {
@JvmStatic val staticProperty = 42
@JvmStatic fun staticFun() {}
}
}
@AllOpen
annotation class MyComponent(val name: String, val index: Int) {
companion object {
@JvmStatic val staticProperty = 42
@JvmStatic fun staticFun() {}
}
}
@@ -0,0 +1,58 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'annotationMembers.kt'
}
@kotlin.Metadata
public final class MyComponent$Companion {
// source: 'annotationMembers.kt'
synthetic final static field $$INSTANCE: MyComponent$Companion
private final static field staticProperty: int
static method <clinit>(): void
private method <init>(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method getStaticProperty$annotations(): void
public final method getStaticProperty(): int
public final @kotlin.jvm.JvmStatic method staticFun(): void
public final inner class MyComponent$Companion
}
@AllOpen
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class MyComponent {
// source: 'annotationMembers.kt'
public final static @org.jetbrains.annotations.NotNull field Companion: MyComponent$Companion
static method <clinit>(): void
public static method getStaticProperty(): int
public abstract method index(): int
public abstract method name(): java.lang.String
public static @kotlin.jvm.JvmStatic method staticFun(): void
public final inner class MyComponent$Companion
}
@kotlin.Metadata
public final class Plain$Companion {
// source: 'annotationMembers.kt'
synthetic final static field $$INSTANCE: Plain$Companion
private final static field staticProperty: int
static method <clinit>(): void
private method <init>(): void
public synthetic deprecated static @kotlin.jvm.JvmStatic method getStaticProperty$annotations(): void
public final method getStaticProperty(): int
public final @kotlin.jvm.JvmStatic method staticFun(): void
public final inner class Plain$Companion
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class Plain {
// source: 'annotationMembers.kt'
public final static @org.jetbrains.annotations.NotNull field Companion: Plain$Companion
static method <clinit>(): void
public static method getStaticProperty(): int
public abstract method index(): int
public abstract method name(): java.lang.String
public static @kotlin.jvm.JvmStatic method staticFun(): void
public final inner class Plain$Companion
}
@@ -0,0 +1,23 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FIR version does not go inside bodies
// Also it's quiestionable do we even need to transform local classes and anonymous objects
annotation class AllOpen
@AllOpen
class Test {
val a = object : Runnable {
override fun run() {
1
}
}
fun b() {
object : Runnable {
override fun run() {
1
}
}
Runnable { 1 }.run()
}
}
@@ -0,0 +1,47 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'anonymousObject.kt'
}
@kotlin.Metadata
public final class Test$a$1 {
// source: 'anonymousObject.kt'
enclosing method Test.<init>()V
inner (anonymous) class Test$a$1
method <init>(): void
public method run(): void
}
@kotlin.Metadata
public final class Test$b$1 {
// source: 'anonymousObject.kt'
enclosing method Test.b()V
inner (anonymous) class Test$b$1
method <init>(): void
public method run(): void
}
@kotlin.Metadata
final class Test$b$2 {
// source: 'anonymousObject.kt'
enclosing method Test.b()V
public final static field INSTANCE: Test$b$2
inner (anonymous) class Test$b$2
static method <clinit>(): void
method <init>(): void
public final method run(): void
}
@AllOpen
@kotlin.Metadata
public class Test {
// source: 'anonymousObject.kt'
private final @org.jetbrains.annotations.NotNull field a: java.lang.Runnable
inner (anonymous) class Test$a$1
inner (anonymous) class Test$b$1
inner (anonymous) class Test$b$2
public method <init>(): void
public method b(): void
public @org.jetbrains.annotations.NotNull method getA(): java.lang.Runnable
}
@@ -0,0 +1,36 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'anonymousObject.kt'
}
@kotlin.Metadata
public final class Test$a$1 {
// source: 'anonymousObject.kt'
enclosing method Test.<init>()V
inner (anonymous) class Test$a$1
method <init>(): void
public method run(): void
}
@kotlin.Metadata
public final class Test$b$1 {
// source: 'anonymousObject.kt'
enclosing method Test.b()V
inner (anonymous) class Test$b$1
method <init>(): void
public method run(): void
}
@AllOpen
@kotlin.Metadata
public class Test {
// source: 'anonymousObject.kt'
private final @org.jetbrains.annotations.NotNull field a: java.lang.Runnable
inner (anonymous) class Test$a$1
inner (anonymous) class Test$b$1
public method <init>(): void
private final static method b$lambda-0(): void
public method b(): void
public @org.jetbrains.annotations.NotNull method getA(): java.lang.Runnable
}
@@ -0,0 +1,18 @@
annotation class AllOpen
@AllOpen
final class Test1
@AllOpen
class Test2 {
fun method1() {}
val prop1: String = ""
final fun method2() {}
final val prop2: String = ""
final var prop3: String = ""
// Modifier 'final' is not applicable to 'setter'
// var prop4: String = ""
// final set
}
@@ -0,0 +1,28 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'explicitFinal.kt'
}
@AllOpen
@kotlin.Metadata
public final class Test1 {
// source: 'explicitFinal.kt'
public method <init>(): void
}
@AllOpen
@kotlin.Metadata
public class Test2 {
// source: 'explicitFinal.kt'
private final @org.jetbrains.annotations.NotNull field prop1: java.lang.String
private final @org.jetbrains.annotations.NotNull field prop2: java.lang.String
private @org.jetbrains.annotations.NotNull field prop3: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp1(): java.lang.String
public final @org.jetbrains.annotations.NotNull method getProp2(): java.lang.String
public final @org.jetbrains.annotations.NotNull method getProp3(): java.lang.String
public method method1(): void
public final method method2(): void
public final method setProp3(@org.jetbrains.annotations.NotNull p0: java.lang.String): void
}
@@ -0,0 +1,47 @@
// IGNORE_BACKEND_FIR: JVM_IR
// FIR version does not support double-transitive annotations by design
annotation class AllOpen
@AllOpen
annotation class MyComponent
@MyComponent // Double-transitive annotations is supported
annotation class OtherComponent
@OtherComponent
annotation class AnotherComponent
@java.lang.annotation.Documented
annotation class Documented
class TestWithoutAnnotations_ShouldBeFinal
@Documented
class ClassWithDocumented
@AllOpen
class TestAllOpen_ShouldBeOpen
@MyComponent
class TestMyComponent_ShouldBeOpen
@OtherComponent
class TestOtherComponent_ShouldBeOpen
@AnotherComponent
class TestAnotherComponent_ShouldBeOpen
@MyComponent
abstract class MyComponentBase
class MyComponentImpl_ShouldBeOpen : MyComponentBase() {
fun method() {}
}
final class MyComponentImpl2_ShouldBeFinal : MyComponentBase() {
fun method() {}
}
class MyComponentImpl3_ShouldBeOpen : MyComponentBase() {
final fun method_ShouldBeFinal() {}
}
@@ -0,0 +1,102 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'metaAnnotation.kt'
}
@OtherComponent
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AnotherComponent {
// source: 'metaAnnotation.kt'
}
@Documented
@kotlin.Metadata
public final class ClassWithDocumented {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@java.lang.annotation.Documented
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class Documented {
// source: 'metaAnnotation.kt'
}
@AllOpen
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class MyComponent {
// source: 'metaAnnotation.kt'
}
@MyComponent
@kotlin.Metadata
public abstract class MyComponentBase {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class MyComponentImpl2_ShouldBeFinal {
// source: 'metaAnnotation.kt'
public method <init>(): void
public method method(): void
}
@kotlin.Metadata
public class MyComponentImpl3_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
public final method method_ShouldBeFinal(): void
}
@kotlin.Metadata
public class MyComponentImpl_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
public method method(): void
}
@MyComponent
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class OtherComponent {
// source: 'metaAnnotation.kt'
}
@AllOpen
@kotlin.Metadata
public class TestAllOpen_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@AnotherComponent
@kotlin.Metadata
public class TestAnotherComponent_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@MyComponent
@kotlin.Metadata
public class TestMyComponent_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@OtherComponent
@kotlin.Metadata
public class TestOtherComponent_ShouldBeOpen {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
@kotlin.Metadata
public final class TestWithoutAnnotations_ShouldBeFinal {
// source: 'metaAnnotation.kt'
public method <init>(): void
}
+11
View File
@@ -0,0 +1,11 @@
annotation class AllOpen
@AllOpen
class Test {
val prop: String = ""
fun method() {}
class Nested {
fun nestedMethod() {}
}
}
@@ -0,0 +1,24 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'nestedClass.kt'
}
@kotlin.Metadata
public final class Test$Nested {
// source: 'nestedClass.kt'
public method <init>(): void
public final method nestedMethod(): void
public final inner class Test$Nested
}
@AllOpen
@kotlin.Metadata
public class Test {
// source: 'nestedClass.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public method method(): void
public final inner class Test$Nested
}
+14
View File
@@ -0,0 +1,14 @@
annotation class AllOpen
@AllOpen
class Test {
fun testMethod() {}
class Nested {
fun nestedMethod() {}
}
inner class Inner {
fun innerMethod() {}
}
}
@@ -0,0 +1,32 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'nestedInner.kt'
}
@kotlin.Metadata
public final class Test$Inner {
// source: 'nestedInner.kt'
synthetic final field this$0: Test
public method <init>(p0: Test): void
public final method innerMethod(): void
public final inner class Test$Inner
}
@kotlin.Metadata
public final class Test$Nested {
// source: 'nestedInner.kt'
public method <init>(): void
public final method nestedMethod(): void
public final inner class Test$Nested
}
@AllOpen
@kotlin.Metadata
public class Test {
// source: 'nestedInner.kt'
public method <init>(): void
public method testMethod(): void
public final inner class Test$Inner
public final inner class Test$Nested
}
+4
View File
@@ -0,0 +1,4 @@
class Test {
val prop: String = ""
fun method() {}
}
@@ -0,0 +1,8 @@
@kotlin.Metadata
public final class Test {
// source: 'noAllOpen.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public final method method(): void
}
@@ -0,0 +1,18 @@
annotation class AllOpen
@AllOpen
private class Test {
fun publicMethod() {}
val publicProp: String = ""
protected fun protectedMethod() {}
protected val protectedProp: String = ""
private fun privateMethod() {}
private val privateProp: String = ""
internal fun internalMethod() {}
internal val internalProp: String = ""
private tailrec fun privateTailrecMethod() {}
}
@@ -0,0 +1,24 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'privateMembers.kt'
}
@AllOpen
@kotlin.Metadata
class Test {
// source: 'privateMembers.kt'
private final @org.jetbrains.annotations.NotNull field internalProp: java.lang.String
private final field privateProp: java.lang.String
private final @org.jetbrains.annotations.NotNull field protectedProp: java.lang.String
private final @org.jetbrains.annotations.NotNull field publicProp: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getInternalProp$main(): java.lang.String
protected @org.jetbrains.annotations.NotNull method getProtectedProp(): java.lang.String
public @org.jetbrains.annotations.NotNull method getPublicProp(): java.lang.String
public method internalMethod$main(): void
private method privateMethod(): void
private method privateTailrecMethod(): void
protected method protectedMethod(): void
public method publicMethod(): void
}
@@ -0,0 +1,24 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'privateMembers.kt'
}
@AllOpen
@kotlin.Metadata
class Test {
// source: 'privateMembers.kt'
private final @org.jetbrains.annotations.NotNull field internalProp: java.lang.String
private final @org.jetbrains.annotations.NotNull field privateProp: java.lang.String
private final @org.jetbrains.annotations.NotNull field protectedProp: java.lang.String
private final @org.jetbrains.annotations.NotNull field publicProp: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getInternalProp$main(): java.lang.String
protected @org.jetbrains.annotations.NotNull method getProtectedProp(): java.lang.String
public @org.jetbrains.annotations.NotNull method getPublicProp(): java.lang.String
public method internalMethod$main(): void
private method privateMethod(): void
private method privateTailrecMethod(): void
protected method protectedMethod(): void
public method publicMethod(): void
}
+14
View File
@@ -0,0 +1,14 @@
annotation class AllOpen
@AllOpen
sealed class Sealed {
class C1 : Sealed() {}
class C2 : Sealed() {}
}
sealed class Sealed2 {
@AllOpen
class C1 : Sealed2() {}
class C2 : Sealed2() {}
}
+53
View File
@@ -0,0 +1,53 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'sealed.kt'
}
@kotlin.Metadata
public class Sealed$C1 {
// source: 'sealed.kt'
public method <init>(): void
public inner class Sealed$C1
}
@kotlin.Metadata
public class Sealed$C2 {
// source: 'sealed.kt'
public method <init>(): void
public inner class Sealed$C2
}
@AllOpen
@kotlin.Metadata
public abstract class Sealed {
// source: 'sealed.kt'
private method <init>(): void
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
public inner class Sealed$C1
public inner class Sealed$C2
}
@AllOpen
@kotlin.Metadata
public class Sealed2$C1 {
// source: 'sealed.kt'
public method <init>(): void
public inner class Sealed2$C1
}
@kotlin.Metadata
public final class Sealed2$C2 {
// source: 'sealed.kt'
public method <init>(): void
public final inner class Sealed2$C2
}
@kotlin.Metadata
public abstract class Sealed2 {
// source: 'sealed.kt'
private method <init>(): void
public synthetic method <init>(p0: kotlin.jvm.internal.DefaultConstructorMarker): void
public final inner class Sealed2$C2
public inner class Sealed2$C1
}
@@ -0,0 +1,9 @@
annotation class AllOpen
annotation class AllOpen2
@AllOpen
@AllOpen2
class Test {
val prop: String = ""
fun method() {}
}
@@ -0,0 +1,22 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'severalAllOpen.kt'
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen2 {
// source: 'severalAllOpen.kt'
}
@AllOpen
@AllOpen2
@kotlin.Metadata
public class Test {
// source: 'severalAllOpen.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public method method(): void
}
+7
View File
@@ -0,0 +1,7 @@
annotation class AllOpen
@AllOpen
class Test {
val prop: String = ""
fun method() {}
}
+15
View File
@@ -0,0 +1,15 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'simple.kt'
}
@AllOpen
@kotlin.Metadata
public class Test {
// source: 'simple.kt'
private final @org.jetbrains.annotations.NotNull field prop: java.lang.String
public method <init>(): void
public @org.jetbrains.annotations.NotNull method getProp(): java.lang.String
public method method(): void
}
@@ -0,0 +1,45 @@
// FILE: component.kt
package org.springframework.stereotype
annotation class Component
// FILE: transactional.kt
package org.springframework.transaction.annotation
annotation class Transactional
// FILE: async.kt
package org.springframework.scheduling.annotation
annotation class Async
// FILE: cacheable.kt
package org.springframework.cache.annotation
annotation class Cacheable
// FILE: springBootTest.kt
package org.springframework.boot.test.context
annotation class SpringBootTest
// FILE: main.kt
package test
import org.springframework.stereotype.*
import org.springframework.transaction.annotation.*
import org.springframework.scheduling.annotation.*
import org.springframework.cache.annotation.*
import org.springframework.boot.test.context.*
@Component
class TestComponent
@Transactional
class TestTransactional
@Async
class TestAsync
@Cacheable
class TestCacheable
@SpringBootTest
class TestSpringBootTest
class NoAnno
@@ -0,0 +1,70 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class org/springframework/boot/test/context/SpringBootTest {
// source: 'springBootTest.kt'
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class org/springframework/cache/annotation/Cacheable {
// source: 'cacheable.kt'
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class org/springframework/scheduling/annotation/Async {
// source: 'async.kt'
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class org/springframework/stereotype/Component {
// source: 'component.kt'
}
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class org/springframework/transaction/annotation/Transactional {
// source: 'transactional.kt'
}
@kotlin.Metadata
public final class test/NoAnno {
// source: 'main.kt'
public method <init>(): void
}
@org.springframework.scheduling.annotation.Async
@kotlin.Metadata
public class test/TestAsync {
// source: 'main.kt'
public method <init>(): void
}
@org.springframework.cache.annotation.Cacheable
@kotlin.Metadata
public class test/TestCacheable {
// source: 'main.kt'
public method <init>(): void
}
@org.springframework.stereotype.Component
@kotlin.Metadata
public class test/TestComponent {
// source: 'main.kt'
public method <init>(): void
}
@org.springframework.boot.test.context.SpringBootTest
@kotlin.Metadata
public class test/TestSpringBootTest {
// source: 'main.kt'
public method <init>(): void
}
@org.springframework.transaction.annotation.Transactional
@kotlin.Metadata
public class test/TestTransactional {
// source: 'main.kt'
public method <init>(): void
}
@@ -0,0 +1,28 @@
annotation class AllOpen
@AllOpen
abstract class Base_ShouldBeOpen {
fun baseMethod() {}
}
open class BaseImpl : Base_ShouldBeOpen() {
fun baseImplMethod_ShouldBeOpen() {}
}
class BaseImpl2_ShouldBeOpen : BaseImpl() {
fun baseImpl2Method_ShouldBeOpen() {}
val baseImpl2Property_ShouldBeOpen = ""
}
@AllOpen
interface Intf {
fun intfMethod() {}
}
open class IntfImpl : Intf {
fun intfImplMethod_ShouldBeOpen() {}
}
class IntfImpl2_ShouldBeOpen : IntfImpl() {
fun intfImpl2Method_ShouldBeOpen() {}
}
@@ -0,0 +1,59 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class AllOpen {
// source: 'superClassAnnotation.kt'
}
@kotlin.Metadata
public class BaseImpl {
// source: 'superClassAnnotation.kt'
public method <init>(): void
public method baseImplMethod_ShouldBeOpen(): void
}
@kotlin.Metadata
public class BaseImpl2_ShouldBeOpen {
// source: 'superClassAnnotation.kt'
private final @org.jetbrains.annotations.NotNull field baseImpl2Property_ShouldBeOpen: java.lang.String
public method <init>(): void
public method baseImpl2Method_ShouldBeOpen(): void
public @org.jetbrains.annotations.NotNull method getBaseImpl2Property_ShouldBeOpen(): java.lang.String
}
@AllOpen
@kotlin.Metadata
public abstract class Base_ShouldBeOpen {
// source: 'superClassAnnotation.kt'
public method <init>(): void
public method baseMethod(): void
}
@kotlin.Metadata
public final class Intf$DefaultImpls {
// source: 'superClassAnnotation.kt'
public static method intfMethod(@org.jetbrains.annotations.NotNull p0: Intf): void
public final inner class Intf$DefaultImpls
}
@AllOpen
@kotlin.Metadata
public interface Intf {
// source: 'superClassAnnotation.kt'
public abstract method intfMethod(): void
public final inner class Intf$DefaultImpls
}
@kotlin.Metadata
public class IntfImpl {
// source: 'superClassAnnotation.kt'
public method <init>(): void
public method intfImplMethod_ShouldBeOpen(): void
public method intfMethod(): void
}
@kotlin.Metadata
public class IntfImpl2_ShouldBeOpen {
// source: 'superClassAnnotation.kt'
public method <init>(): void
public method intfImpl2Method_ShouldBeOpen(): void
}