Remove @get: @set:, reorder remaining annotation targets
This commit is contained in:
+4
-4
@@ -43,9 +43,9 @@ public class AnnotationSplitter(
|
|||||||
applicableTargetsLazy: () -> Set<AnnotationUseSiteTarget>
|
applicableTargetsLazy: () -> Set<AnnotationUseSiteTarget>
|
||||||
) {
|
) {
|
||||||
public companion object {
|
public companion object {
|
||||||
private val TARGET_PRIORITIES = setOf(CONSTRUCTOR_PARAMETER, FIELD, PROPERTY, PROPERTY_SETTER, PROPERTY_GETTER)
|
private val TARGET_PRIORITIES = setOf(CONSTRUCTOR_PARAMETER, PROPERTY, FIELD)
|
||||||
|
|
||||||
@jvmStatic
|
@JvmStatic
|
||||||
public fun create(
|
public fun create(
|
||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
annotations: Annotations,
|
annotations: Annotations,
|
||||||
@@ -54,7 +54,7 @@ public class AnnotationSplitter(
|
|||||||
return AnnotationSplitter(storageManager, annotations, { targets })
|
return AnnotationSplitter(storageManager, annotations, { targets })
|
||||||
}
|
}
|
||||||
|
|
||||||
@jvmStatic
|
@JvmStatic
|
||||||
public fun getTargetSet(parameter: Boolean, context: BindingContext, wrapper: PropertyWrapper): Set<AnnotationUseSiteTarget> {
|
public fun getTargetSet(parameter: Boolean, context: BindingContext, wrapper: PropertyWrapper): Set<AnnotationUseSiteTarget> {
|
||||||
val property = wrapper.property
|
val property = wrapper.property
|
||||||
assert(property != null)
|
assert(property != null)
|
||||||
@@ -62,7 +62,7 @@ public class AnnotationSplitter(
|
|||||||
return getTargetSet(parameter, property!!.isVar, hasBackingField)
|
return getTargetSet(parameter, property!!.isVar, hasBackingField)
|
||||||
}
|
}
|
||||||
|
|
||||||
@jvmStatic
|
@JvmStatic
|
||||||
public fun getTargetSet(parameter: Boolean, isVar: Boolean, hasBackingField: Boolean): Set<AnnotationUseSiteTarget> {
|
public fun getTargetSet(parameter: Boolean, isVar: Boolean, hasBackingField: Boolean): Set<AnnotationUseSiteTarget> {
|
||||||
return hashSetOf(PROPERTY, PROPERTY_GETTER).apply {
|
return hashSetOf(PROPERTY, PROPERTY_GETTER).apply {
|
||||||
if (parameter) add(CONSTRUCTOR_PARAMETER)
|
if (parameter) add(CONSTRUCTOR_PARAMETER)
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.types.TypeUtils
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isRepeatableAnnotation
|
import org.jetbrains.kotlin.resolve.descriptorUtil.isRepeatableAnnotation
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget.*
|
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget.*
|
||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
import org.jetbrains.kotlin.resolve.descriptorUtil.fqNameSafe
|
||||||
import kotlin.platform.platformStatic
|
|
||||||
|
|
||||||
public class AnnotationChecker(private val additionalCheckers: Iterable<AdditionalAnnotationChecker>) {
|
public class AnnotationChecker(private val additionalCheckers: Iterable<AdditionalAnnotationChecker>) {
|
||||||
|
|
||||||
@@ -146,7 +145,7 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
|||||||
return applicableTargetSet(classDescriptor) ?: KotlinTarget.DEFAULT_TARGET_SET
|
return applicableTargetSet(classDescriptor) ?: KotlinTarget.DEFAULT_TARGET_SET
|
||||||
}
|
}
|
||||||
|
|
||||||
platformStatic
|
@JvmStatic
|
||||||
public fun applicableTargetSet(descriptor: AnnotationDescriptor): Set<KotlinTarget> {
|
public fun applicableTargetSet(descriptor: AnnotationDescriptor): Set<KotlinTarget> {
|
||||||
val classDescriptor = descriptor.type.constructor.declarationDescriptor as? ClassDescriptor ?: return emptySet()
|
val classDescriptor = descriptor.type.constructor.declarationDescriptor as? ClassDescriptor ?: return emptySet()
|
||||||
return applicableTargetSet(classDescriptor) ?: KotlinTarget.DEFAULT_TARGET_SET
|
return applicableTargetSet(classDescriptor) ?: KotlinTarget.DEFAULT_TARGET_SET
|
||||||
@@ -211,24 +210,25 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
|||||||
}
|
}
|
||||||
|
|
||||||
val T_MEMBER_PROPERTY = targetList(MEMBER_PROPERTY, PROPERTY) {
|
val T_MEMBER_PROPERTY = targetList(MEMBER_PROPERTY, PROPERTY) {
|
||||||
canBeSubstituted(PROPERTY_GETTER, PROPERTY_SETTER, FIELD)
|
extraTargets(FIELD)
|
||||||
onlyWithUseSiteTarget(VALUE_PARAMETER)
|
onlyWithUseSiteTarget(VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER)
|
||||||
}
|
}
|
||||||
|
|
||||||
val T_TOP_LEVEL_PROPERTY = targetList(TOP_LEVEL_PROPERTY, PROPERTY) {
|
val T_TOP_LEVEL_PROPERTY = targetList(TOP_LEVEL_PROPERTY, PROPERTY) {
|
||||||
canBeSubstituted(FIELD, PROPERTY_GETTER, PROPERTY_SETTER)
|
extraTargets(FIELD)
|
||||||
onlyWithUseSiteTarget(VALUE_PARAMETER)
|
onlyWithUseSiteTarget(VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER)
|
||||||
}
|
}
|
||||||
|
|
||||||
val T_PROPERTY_GETTER = targetList(PROPERTY_GETTER)
|
val T_PROPERTY_GETTER = targetList(PROPERTY_GETTER)
|
||||||
val T_PROPERTY_SETTER = targetList(PROPERTY_SETTER)
|
val T_PROPERTY_SETTER = targetList(PROPERTY_SETTER)
|
||||||
|
|
||||||
val T_VALUE_PARAMETER_WITHOUT_VAL = targetList(VALUE_PARAMETER) {
|
val T_VALUE_PARAMETER_WITHOUT_VAL = targetList(VALUE_PARAMETER) {
|
||||||
onlyWithUseSiteTarget(PROPERTY, FIELD, PROPERTY_GETTER, PROPERTY_SETTER)
|
onlyWithUseSiteTarget(PROPERTY, FIELD)
|
||||||
}
|
}
|
||||||
|
|
||||||
val T_VALUE_PARAMETER_WITH_VAL = targetList(VALUE_PARAMETER, PROPERTY, MEMBER_PROPERTY) {
|
val T_VALUE_PARAMETER_WITH_VAL = targetList(VALUE_PARAMETER, PROPERTY, MEMBER_PROPERTY) {
|
||||||
canBeSubstituted(FIELD, PROPERTY_GETTER, PROPERTY_SETTER)
|
extraTargets(FIELD)
|
||||||
|
onlyWithUseSiteTarget(PROPERTY_GETTER, PROPERTY_SETTER)
|
||||||
}
|
}
|
||||||
|
|
||||||
val T_FILE = targetList(FILE)
|
val T_FILE = targetList(FILE)
|
||||||
@@ -273,7 +273,7 @@ public class AnnotationChecker(private val additionalCheckers: Iterable<Addition
|
|||||||
private var canBeSubstituted: List<KotlinTarget> = listOf()
|
private var canBeSubstituted: List<KotlinTarget> = listOf()
|
||||||
private var onlyWithUseSiteTarget: List<KotlinTarget> = listOf()
|
private var onlyWithUseSiteTarget: List<KotlinTarget> = listOf()
|
||||||
|
|
||||||
fun canBeSubstituted(vararg targets: KotlinTarget) {
|
fun extraTargets(vararg targets: KotlinTarget) {
|
||||||
canBeSubstituted = targets.toList()
|
canBeSubstituted = targets.toList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,29 +10,18 @@ annotation class AnnFieldProperty
|
|||||||
@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY)
|
@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY)
|
||||||
annotation class AnnParameterProperty
|
annotation class AnnParameterProperty
|
||||||
|
|
||||||
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.FIELD)
|
@Target(AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FIELD)
|
||||||
annotation class AnnParameterField
|
annotation class AnnParameterField
|
||||||
|
|
||||||
@Target(AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER)
|
@Target(AnnotationTarget.FIELD, AnnotationTarget.TYPE)
|
||||||
annotation class AnnGetterSetter
|
|
||||||
|
|
||||||
@Target(AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.PROPERTY)
|
|
||||||
annotation class AnnPropertySetter
|
|
||||||
|
|
||||||
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.PROPERTY_GETTER)
|
|
||||||
annotation class AnnTypeGetter
|
|
||||||
|
|
||||||
@Target(AnnotationTarget.PROPERTY, AnnotationTarget.TYPE)
|
|
||||||
annotation class AnnTypeField
|
annotation class AnnTypeField
|
||||||
|
|
||||||
public class A(
|
public class A(
|
||||||
@AnnProperty @AnnField @AnnFieldProperty @AnnParameterProperty @AnnParameterField
|
@AnnProperty @AnnField @AnnFieldProperty @AnnParameterProperty @AnnParameterField @AnnTypeField
|
||||||
@AnnGetterSetter @AnnPropertySetter @AnnTypeGetter @AnnTypeField
|
|
||||||
public val x: Int
|
public val x: Int
|
||||||
) {
|
) {
|
||||||
|
|
||||||
@AnnProperty @AnnField @AnnFieldProperty @AnnParameterProperty @AnnParameterField
|
@AnnProperty @AnnField @AnnFieldProperty @AnnParameterProperty @AnnParameterField @AnnTypeField
|
||||||
@AnnGetterSetter @AnnPropertySetter @AnnTypeGetter @AnnTypeField
|
|
||||||
public val a: Int = 1
|
public val a: Int = 1
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,29 +1,23 @@
|
|||||||
@kotlin.jvm.internal.KotlinClass A {
|
@kotlin.jvm.internal.KotlinClass A {
|
||||||
field $kotlinClass: kotlin.reflect.KClass
|
field $kotlinClass: kotlin.reflect.KClass
|
||||||
@AnnField @AnnFieldProperty @AnnParameterField field a: int
|
@AnnField @AnnParameterField @AnnTypeField field a: int
|
||||||
@AnnField @AnnFieldProperty @AnnParameterField field x: int
|
@AnnField @AnnTypeField field x: int
|
||||||
method <clinit>(): void
|
method <clinit>(): void
|
||||||
@AnnProperty @AnnParameterProperty @AnnPropertySetter @AnnTypeGetter @AnnTypeField method a$annotations(): void
|
@AnnProperty @AnnFieldProperty @AnnParameterProperty method a$annotations(): void
|
||||||
@AnnGetterSetter method getA(): int
|
method getA(): int
|
||||||
@AnnProperty @AnnPropertySetter @AnnTypeGetter @AnnTypeField method x$annotations(): void
|
@AnnProperty @AnnFieldProperty method x$annotations(): void
|
||||||
@AnnGetterSetter method getX(): int
|
method getX(): int
|
||||||
method <init>(@AnnParameterProperty p0: int): void
|
method <init>(@AnnParameterProperty @AnnParameterField p0: int): void
|
||||||
}
|
}
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnField
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnField
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnFieldProperty
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnFieldProperty
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnGetterSetter
|
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterField
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterField
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterProperty
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnParameterProperty
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnProperty
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnProperty
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnPropertySetter
|
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnTypeField
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnTypeField
|
|
||||||
|
|
||||||
@kotlin.annotation.Target @java.lang.annotation.Retention @java.lang.annotation.Target @kotlin.jvm.internal.KotlinClass AnnTypeGetter
|
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
@kotlin.jvm.internal.KotlinClass A {
|
@kotlin.jvm.internal.KotlinClass A {
|
||||||
field $kotlinClass: kotlin.reflect.KClass
|
field $kotlinClass: kotlin.reflect.KClass
|
||||||
@AnnProp @AnnField field p: int
|
@AnnField field p: int
|
||||||
@AnnField field x: int
|
@AnnField field x: int
|
||||||
field y: int
|
field y: int
|
||||||
method <clinit>(): void
|
method <clinit>(): void
|
||||||
@AnnProp2 method p$annotations(): void
|
@AnnProp @AnnProp2 method p$annotations(): void
|
||||||
@AnnGetter method getP(): int
|
@AnnGetter method getP(): int
|
||||||
@AnnSetter method setP(@AnnParam p0: int): void
|
@AnnSetter method setP(@AnnParam p0: int): void
|
||||||
@AnnProp2 method x$annotations(): void
|
@AnnProp2 method x$annotations(): void
|
||||||
|
|||||||
+2
-2
@@ -8,9 +8,9 @@ annotation class smartset
|
|||||||
annotation class base
|
annotation class base
|
||||||
|
|
||||||
class My(x: Int) {
|
class My(x: Int) {
|
||||||
@smartget var y = x
|
<!WRONG_ANNOTATION_TARGET!>@smartget<!> var y = x
|
||||||
<!WRONG_ANNOTATION_TARGET!>@base<!> @smartget <!WRONG_ANNOTATION_TARGET!>@smartset<!> get
|
<!WRONG_ANNOTATION_TARGET!>@base<!> @smartget <!WRONG_ANNOTATION_TARGET!>@smartset<!> get
|
||||||
<!WRONG_ANNOTATION_TARGET!>@base<!> <!WRONG_ANNOTATION_TARGET!>@smartget<!> @smartset set
|
<!WRONG_ANNOTATION_TARGET!>@base<!> <!WRONG_ANNOTATION_TARGET!>@smartget<!> @smartset set
|
||||||
|
|
||||||
@base <!WRONG_ANNOTATION_TARGET!>@smartget<!> <!WRONG_ANNOTATION_TARGET!>@smartset<!> fun foo() = y
|
@base <!WRONG_ANNOTATION_TARGET!>@smartget<!> <!WRONG_ANNOTATION_TARGET!>@smartset<!> fun foo() = y
|
||||||
}
|
}
|
||||||
+1
-1
@@ -2,7 +2,7 @@ package
|
|||||||
|
|
||||||
public final class My {
|
public final class My {
|
||||||
public constructor My(/*0*/ x: kotlin.Int)
|
public constructor My(/*0*/ x: kotlin.Int)
|
||||||
public final var y: kotlin.Int
|
smartget() public final var y: kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
base() smartget() smartset() public final fun foo(): kotlin.Int
|
base() smartget() smartset() public final fun foo(): kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
|||||||
+2
-2
@@ -2,8 +2,8 @@ package
|
|||||||
|
|
||||||
public final class A {
|
public final class A {
|
||||||
public constructor A(/*0*/ @param:Ann() Ann() x: kotlin.Int, /*1*/ @param:RepeatableAnn() Ann() y: kotlin.Int)
|
public constructor A(/*0*/ @param:Ann() Ann() x: kotlin.Int, /*1*/ @param:RepeatableAnn() Ann() y: kotlin.Int)
|
||||||
@property:Ann() @property:RepeatableAnn() @field:Ann() RepeatableAnn() public final val a: kotlin.Int = 0
|
@property:Ann() RepeatableAnn() @property:RepeatableAnn() @field:Ann() public final val a: kotlin.Int = 0
|
||||||
@property:Ann() Ann() @field:Ann() public final val b: kotlin.Int = 0
|
Ann() @property:Ann() @field:Ann() public final val b: kotlin.Int = 0
|
||||||
@field:RepeatableAnn() @field:RepeatableAnn() public final val c: kotlin.Int = 0
|
@field:RepeatableAnn() @field:RepeatableAnn() public final val c: kotlin.Int = 0
|
||||||
@property:RepeatableAnn() RepeatableAnn() public final val d: kotlin.Int = 0
|
@property:RepeatableAnn() RepeatableAnn() public final val d: kotlin.Int = 0
|
||||||
public final val x: kotlin.Int
|
public final val x: kotlin.Int
|
||||||
|
|||||||
Vendored
+4
-4
@@ -6,10 +6,10 @@ fun foo() {}
|
|||||||
@JvmName("b")
|
@JvmName("b")
|
||||||
fun Any.foo() {}
|
fun Any.foo() {}
|
||||||
|
|
||||||
@JvmName("c")
|
<!WRONG_ANNOTATION_TARGET!>@JvmName("c")<!>
|
||||||
val px = 1
|
val px = 1
|
||||||
|
|
||||||
@JvmName("d")
|
<!WRONG_ANNOTATION_TARGET!>@JvmName("d")<!>
|
||||||
val Any.px : Int
|
val Any.px : Int
|
||||||
get() = 1
|
get() = 1
|
||||||
|
|
||||||
@@ -39,10 +39,10 @@ class C <!WRONG_ANNOTATION_TARGET!>@JvmName("primary")<!> constructor() {
|
|||||||
@JvmName("b")
|
@JvmName("b")
|
||||||
fun Any.foo() {}
|
fun Any.foo() {}
|
||||||
|
|
||||||
@JvmName("c")
|
<!WRONG_ANNOTATION_TARGET!>@JvmName("c")<!>
|
||||||
val px = 1
|
val px = 1
|
||||||
|
|
||||||
@JvmName("d")
|
<!WRONG_ANNOTATION_TARGET!>@JvmName("d")<!>
|
||||||
val Any.px : Int
|
val Any.px : Int
|
||||||
get() = 1
|
get() = 1
|
||||||
|
|
||||||
|
|||||||
Vendored
+4
-4
@@ -1,10 +1,10 @@
|
|||||||
package
|
package
|
||||||
|
|
||||||
public val px: kotlin.Int = 1
|
kotlin.jvm.JvmName(name = "c") public val px: kotlin.Int = 1
|
||||||
public val valx: kotlin.Int
|
public val valx: kotlin.Int
|
||||||
public var vardef: kotlin.Int
|
public var vardef: kotlin.Int
|
||||||
public var varx: kotlin.Int
|
public var varx: kotlin.Int
|
||||||
public val kotlin.Any.px: kotlin.Int
|
kotlin.jvm.JvmName(name = "d") public val kotlin.Any.px: kotlin.Int
|
||||||
kotlin.jvm.JvmName(name = "a") public fun foo(): kotlin.Unit
|
kotlin.jvm.JvmName(name = "a") public fun foo(): kotlin.Unit
|
||||||
public fun foo1(): kotlin.Unit
|
public fun foo1(): kotlin.Unit
|
||||||
kotlin.jvm.JvmName(name = "b") public fun kotlin.Any.foo(): kotlin.Unit
|
kotlin.jvm.JvmName(name = "b") public fun kotlin.Any.foo(): kotlin.Unit
|
||||||
@@ -22,10 +22,10 @@ public abstract class AB {
|
|||||||
kotlin.jvm.JvmName(name = "C") public final class C {
|
kotlin.jvm.JvmName(name = "C") public final class C {
|
||||||
kotlin.jvm.JvmName(name = "primary") public constructor C()
|
kotlin.jvm.JvmName(name = "primary") public constructor C()
|
||||||
kotlin.jvm.JvmName(name = "ctr") public constructor C(/*0*/ x: kotlin.Int)
|
kotlin.jvm.JvmName(name = "ctr") public constructor C(/*0*/ x: kotlin.Int)
|
||||||
public final val px: kotlin.Int = 1
|
kotlin.jvm.JvmName(name = "c") public final val px: kotlin.Int = 1
|
||||||
public final val valx: kotlin.Int
|
public final val valx: kotlin.Int
|
||||||
public final var varx: kotlin.Int
|
public final var varx: kotlin.Int
|
||||||
public final val kotlin.Any.px: kotlin.Int
|
kotlin.jvm.JvmName(name = "d") public final val kotlin.Any.px: kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
kotlin.jvm.JvmName(name = "a") public final fun foo(): kotlin.Unit
|
kotlin.jvm.JvmName(name = "a") public final fun foo(): kotlin.Unit
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class A {
|
|||||||
fun foo() {
|
fun foo() {
|
||||||
@Ann("class") class Local {
|
@Ann("class") class Local {
|
||||||
Ann("fun") fun foo(): Local = this
|
Ann("fun") fun foo(): Local = this
|
||||||
Ann("val") val x = foo()
|
@field:Ann("val") val x = foo()
|
||||||
|
|
||||||
Ann("inner") inner class Inner
|
Ann("inner") inner class Inner
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user