2a7dc1cc0c
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
48 lines
974 B
Kotlin
Vendored
48 lines
974 B
Kotlin
Vendored
// 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() {}
|
|
}
|