[FIR] Rename annotations in plugin prototype so they have meaningful names
This commit is contained in:
committed by
TeamCityServer
parent
a760c31b22
commit
974150a9d8
+5
-10
@@ -6,17 +6,12 @@
|
||||
package org.jetbrains.kotlin.fir.plugin
|
||||
|
||||
annotation class AllOpen
|
||||
annotation class WithGenerated
|
||||
annotation class WithHello
|
||||
annotation class WithNestedFoo
|
||||
|
||||
annotation class A
|
||||
annotation class B
|
||||
annotation class C
|
||||
annotation class D
|
||||
annotation class E
|
||||
annotation class F
|
||||
annotation class G
|
||||
annotation class DummyFunction
|
||||
annotation class ExternalClassWithNested
|
||||
annotation class NestedClassAndMaterializeMember
|
||||
annotation class MyInterfaceSupertype
|
||||
annotation class CompanionWithFoo
|
||||
|
||||
annotation class AllPublic(val visibility: Visibility)
|
||||
|
||||
|
||||
+2
-2
@@ -21,12 +21,12 @@ import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
/*
|
||||
* Adds MyInterface supertype for all classes annotated with @D
|
||||
* Adds MyInterface supertype for all classes annotated with @MyInterfaceSupertype
|
||||
*/
|
||||
class SomeAdditionalSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExtension(session) {
|
||||
companion object {
|
||||
private val myInterfaceClassId = ClassId(FqName("foo"), Name.identifier("MyInterface"))
|
||||
private val PREDICATE: DeclarationPredicate = has("D".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = has("MyInterfaceSupertype".fqn())
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
|
||||
/*
|
||||
* For each class annotated with @C generates
|
||||
* For each class annotated with @NestedClassAndMaterializeMember generates
|
||||
* - member fun materialize(): ClassName
|
||||
* - nested class Nested with default constructor
|
||||
*/
|
||||
@@ -37,7 +37,7 @@ class AdditionalMembersGenerator(session: FirSession) : FirDeclarationGeneration
|
||||
private val MATERIALIZE_NAME = Name.identifier("materialize")
|
||||
private val NESTED_NAME = Name.identifier("Nested")
|
||||
|
||||
private val PREDICATE: DeclarationPredicate = has("C".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = has("NestedClassAndMaterializeMember".fqn())
|
||||
}
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
|
||||
+2
-2
@@ -33,11 +33,11 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
|
||||
/*
|
||||
* Generates companion object with fun foo(): Int for each class annotated with @E
|
||||
* Generates companion object with fun foo(): Int for each class annotated with @CompanionWithFoo
|
||||
*/
|
||||
class CompanionGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val PREDICATE = has("E".fqn())
|
||||
private val PREDICATE = has("CompanionWithFoo".fqn())
|
||||
private val FOO_NAME = Name.identifier("foo")
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -29,8 +29,8 @@ import org.jetbrains.kotlin.name.*
|
||||
/*
|
||||
* Generates class /foo.AllOpenGenerated with
|
||||
* - empty public constructor
|
||||
* - testClassName() functions for all classes annotated with @B
|
||||
* - NestedClassName nested classes for all classes annotated with @B
|
||||
* - testClassName() functions for all classes annotated with @ExternalClassWithNested
|
||||
* - NestedClassName nested classes for all classes annotated with @ExternalClassWithNested
|
||||
* - function `materialize: ClassName` in those nested classes
|
||||
*
|
||||
* If there are no annotated classes then AllOpenGenerated class is not generated
|
||||
@@ -41,7 +41,7 @@ class ExternalClassGenerator(session: FirSession) : FirDeclarationGenerationExte
|
||||
private val GENERATED_CLASS_ID = ClassId(FOO_PACKAGE, Name.identifier("AllOpenGenerated"))
|
||||
private val MATERIALIZE_NAME = Name.identifier("materialize")
|
||||
|
||||
private val PREDICATE: DeclarationPredicate = has("B".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = has("ExternalClassWithNested".fqn())
|
||||
}
|
||||
|
||||
object Key : FirPluginKey() {
|
||||
|
||||
+2
-2
@@ -28,11 +28,11 @@ import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
/*
|
||||
* Generates `dummyClassName(value: ClassName): String` function for each class annotated with @A
|
||||
* Generates `dummyClassName(value: ClassName): String` function for each class annotated with @DummyFunction
|
||||
*/
|
||||
class TopLevelDeclarationsGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||
companion object {
|
||||
private val PREDICATE: DeclarationPredicate = has("A".fqn())
|
||||
private val PREDICATE: DeclarationPredicate = has("DummyFunction".fqn())
|
||||
}
|
||||
|
||||
private val predicateBasedProvider = session.predicateBasedProvider
|
||||
|
||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE fqName:bar fileName:/generatedClassWithMembersAndNestedClasses.kt
|
||||
CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
B
|
||||
ExternalClassWithNested
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:bar.Foo
|
||||
CONSTRUCTOR visibility:public <> () returnType:bar.Foo [primary]
|
||||
BLOCK_BODY
|
||||
|
||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE: generatedClassWithMembersAndNestedClasses.kt
|
||||
package bar
|
||||
|
||||
@R|org/jetbrains/kotlin/fir/plugin/B|() public final class Foo : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/ExternalClassWithNested|() public final class Foo : R|kotlin/Any| {
|
||||
public constructor(): R|bar/Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -2,9 +2,9 @@
|
||||
package bar
|
||||
|
||||
import foo.AllOpenGenerated
|
||||
import org.jetbrains.kotlin.fir.plugin.B
|
||||
import org.jetbrains.kotlin.fir.plugin.ExternalClassWithNested
|
||||
|
||||
@B
|
||||
@ExternalClassWithNested
|
||||
class Foo {
|
||||
fun box(): String {
|
||||
return "OK"
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: classWithCompanionObject.kt
|
||||
@R|org/jetbrains/kotlin/fir/plugin/E|() public final class SomeClass : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/CompanionWithFoo|() public final class SomeClass : R|kotlin/Any| {
|
||||
public constructor(): R|SomeClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -1,6 +1,6 @@
|
||||
import org.jetbrains.kotlin.fir.plugin.E
|
||||
import org.jetbrains.kotlin.fir.plugin.CompanionWithFoo
|
||||
|
||||
@E
|
||||
@CompanionWithFoo
|
||||
class SomeClass
|
||||
|
||||
fun takeInt(x: Int) {}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: classWithGeneratedMembersAndNestedClass.kt
|
||||
@R|org/jetbrains/kotlin/fir/plugin/C|() public final class Foo : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/NestedClassAndMaterializeMember|() public final class Foo : R|kotlin/Any| {
|
||||
public constructor(): R|Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import org.jetbrains.kotlin.fir.plugin.C
|
||||
import org.jetbrains.kotlin.fir.plugin.NestedClassAndMaterializeMember
|
||||
|
||||
@C
|
||||
@NestedClassAndMaterializeMember
|
||||
class Foo {
|
||||
class MyNested
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
FILE: generatedClassWithMembersAndNestedClasses.kt
|
||||
package bar
|
||||
|
||||
@R|org/jetbrains/kotlin/fir/plugin/B|() public final class Foo : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/ExternalClassWithNested|() public final class Foo : R|kotlin/Any| {
|
||||
public constructor(): R|bar/Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -10,7 +10,7 @@ FILE: generatedClassWithMembersAndNestedClasses.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/B|() public final class Bar : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/ExternalClassWithNested|() public final class Bar : R|kotlin/Any| {
|
||||
public constructor(): R|bar/Bar| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
package bar
|
||||
|
||||
import foo.AllOpenGenerated
|
||||
import org.jetbrains.kotlin.fir.plugin.B
|
||||
import org.jetbrains.kotlin.fir.plugin.ExternalClassWithNested
|
||||
|
||||
@B
|
||||
@ExternalClassWithNested
|
||||
class Foo {
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
@B
|
||||
@ExternalClassWithNested
|
||||
class Bar {
|
||||
fun bar() {}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE: topLevelCallables.kt
|
||||
package foo
|
||||
|
||||
@R|org/jetbrains/kotlin/fir/plugin/A|() public final class MySuperClass : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/DummyFunction|() public final class MySuperClass : R|kotlin/Any| {
|
||||
public constructor(): R|foo/MySuperClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package foo
|
||||
|
||||
import org.jetbrains.kotlin.fir.plugin.A
|
||||
import org.jetbrains.kotlin.fir.plugin.DummyFunction
|
||||
|
||||
@A
|
||||
@DummyFunction
|
||||
class MySuperClass {
|
||||
fun test() {
|
||||
val s = dummyMySuperClass(this)
|
||||
|
||||
+4
-4
@@ -5,13 +5,13 @@ FILE: simple.kt
|
||||
public abstract fun foo(): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/D|() public abstract class AbstractClass : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/MyInterfaceSupertype|() public abstract class AbstractClass : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
public constructor(): R|foo/AbstractClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/D|() public final class FinalClassWithOverride : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/MyInterfaceSupertype|() public final class FinalClassWithOverride : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
public constructor(): R|foo/FinalClassWithOverride| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -20,7 +20,7 @@ FILE: simple.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/D|() public final class FinalClassWithoutOverride : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/MyInterfaceSupertype|() public final class FinalClassWithoutOverride : R|kotlin/Any|, R|foo/MyInterface| {
|
||||
public constructor(): R|foo/FinalClassWithoutOverride| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -35,7 +35,7 @@ FILE: simple.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/D|() public final class AnnotatedClassWithExplicitInheritance : R|foo/MyInterface| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/MyInterfaceSupertype|() public final class AnnotatedClassWithExplicitInheritance : R|foo/MyInterface| {
|
||||
public constructor(): R|foo/AnnotatedClassWithExplicitInheritance| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package foo
|
||||
|
||||
import org.jetbrains.kotlin.fir.plugin.D
|
||||
import org.jetbrains.kotlin.fir.plugin.MyInterfaceSupertype
|
||||
|
||||
interface MyInterface {
|
||||
fun foo()
|
||||
}
|
||||
|
||||
@D
|
||||
@MyInterfaceSupertype
|
||||
abstract class AbstractClass
|
||||
|
||||
@D
|
||||
@MyInterfaceSupertype
|
||||
class FinalClassWithOverride {
|
||||
override fun foo() {}
|
||||
}
|
||||
|
||||
@D
|
||||
@MyInterfaceSupertype
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class FinalClassWithoutOverride<!> {
|
||||
// should be error
|
||||
}
|
||||
@@ -24,7 +24,7 @@ class NotAnnotatedWithOverride {
|
||||
<!NOTHING_TO_OVERRIDE!>override<!> fun foo() {}
|
||||
}
|
||||
|
||||
@D
|
||||
@MyInterfaceSupertype
|
||||
class AnnotatedClassWithExplicitInheritance : MyInterface {
|
||||
override fun foo() {}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE fqName:<root> fileName:/classWithGeneratedMembersAndNestedClass.kt
|
||||
CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
C
|
||||
NestedClassAndMaterializeMember
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Foo
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.Foo [primary]
|
||||
BLOCK_BODY
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: classWithGeneratedMembersAndNestedClass.kt
|
||||
@R|org/jetbrains/kotlin/fir/plugin/C|() public final class Foo : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/NestedClassAndMaterializeMember|() public final class Foo : R|kotlin/Any| {
|
||||
public constructor(): R|Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import org.jetbrains.kotlin.fir.plugin.C
|
||||
import org.jetbrains.kotlin.fir.plugin.NestedClassAndMaterializeMember
|
||||
|
||||
@C
|
||||
@NestedClassAndMaterializeMember
|
||||
class Foo {
|
||||
class MyNested
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
FILE fqName:bar fileName:/generatedClassWithMembersAndNestedClasses.kt
|
||||
CLASS CLASS name:Foo modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
B
|
||||
ExternalClassWithNested
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:bar.Foo
|
||||
CONSTRUCTOR visibility:public <> () returnType:bar.Foo [primary]
|
||||
BLOCK_BODY
|
||||
@@ -25,7 +25,7 @@ FILE fqName:bar fileName:/generatedClassWithMembersAndNestedClasses.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:Bar modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
B
|
||||
ExternalClassWithNested
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:bar.Bar
|
||||
CONSTRUCTOR visibility:public <> () returnType:bar.Bar [primary]
|
||||
BLOCK_BODY
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
FILE: generatedClassWithMembersAndNestedClasses.kt
|
||||
package bar
|
||||
|
||||
@R|org/jetbrains/kotlin/fir/plugin/B|() public final class Foo : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/ExternalClassWithNested|() public final class Foo : R|kotlin/Any| {
|
||||
public constructor(): R|bar/Foo| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -10,7 +10,7 @@ FILE: generatedClassWithMembersAndNestedClasses.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|org/jetbrains/kotlin/fir/plugin/B|() public final class Bar : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/ExternalClassWithNested|() public final class Bar : R|kotlin/Any| {
|
||||
public constructor(): R|bar/Bar| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,14 +1,14 @@
|
||||
package bar
|
||||
|
||||
import foo.AllOpenGenerated
|
||||
import org.jetbrains.kotlin.fir.plugin.B
|
||||
import org.jetbrains.kotlin.fir.plugin.ExternalClassWithNested
|
||||
|
||||
@B
|
||||
@ExternalClassWithNested
|
||||
class Foo {
|
||||
fun foo() {}
|
||||
}
|
||||
|
||||
@B
|
||||
@ExternalClassWithNested
|
||||
class Bar {
|
||||
fun bar() {}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE fqName:foo fileName:/topLevelCallables.kt
|
||||
CLASS CLASS name:MySuperClass modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||
annotations:
|
||||
A
|
||||
DummyFunction
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.MySuperClass
|
||||
CONSTRUCTOR visibility:public <> () returnType:foo.MySuperClass [primary]
|
||||
BLOCK_BODY
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE: topLevelCallables.kt
|
||||
package foo
|
||||
|
||||
@R|org/jetbrains/kotlin/fir/plugin/A|() public final class MySuperClass : R|kotlin/Any| {
|
||||
@R|org/jetbrains/kotlin/fir/plugin/DummyFunction|() public final class MySuperClass : R|kotlin/Any| {
|
||||
public constructor(): R|foo/MySuperClass| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
package foo
|
||||
|
||||
import org.jetbrains.kotlin.fir.plugin.A
|
||||
import org.jetbrains.kotlin.fir.plugin.DummyFunction
|
||||
|
||||
@A
|
||||
@DummyFunction
|
||||
class MySuperClass {
|
||||
fun test() {
|
||||
val s = dummyMySuperClass(this)
|
||||
|
||||
Reference in New Issue
Block a user