4692247897
This code can be invoked early, during body resolution and before the fact that a property has backing field (which is only known for certain after body resolution, because an implicit 'field' identifier may be used). Since split annotations are cached until the end of the program, they may end up on incorrect elements in the bytecode (or disappear completely) as in KT-29507 or KT-28182. Because the FIELD target has the lowest priority among implicit annotation targets (see TARGET_PRIORITIES), it's safe to always assume that FIELD is a valid target when splitting annotations. This only changes the way annotations are split in case of incorrect code, as changes in test data show. #KT-28182 Fixed #KT-29507 Fixed
59 lines
3.0 KiB
Plaintext
Vendored
59 lines
3.0 KiB
Plaintext
Vendored
package
|
|
|
|
@field:Field public val x: kotlin.Int = 42
|
|
@field:Field public val y: kotlin.Int
|
|
|
|
@Field public final annotation class Another : kotlin.Annotation {
|
|
public constructor Another()
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.FIELD}) public final annotation class Field : kotlin.Annotation {
|
|
public constructor Field()
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public interface His {
|
|
@field:Field public abstract val x: kotlin.Int
|
|
@field:Field public open val y: kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
@Field public abstract class My {
|
|
public constructor My(/*0*/ @Field arg: kotlin.Int, /*1*/ w: kotlin.Int)
|
|
@field:Field public final val v: kotlin.Int
|
|
@field:Field public final val w: kotlin.Int
|
|
@field:Field public final val x: kotlin.Int
|
|
@field:Field public final val y: kotlin.Int
|
|
@field:Field public abstract val z: kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
@Field public final fun foo(): kotlin.Unit
|
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
}
|
|
|
|
public final enum class Your : kotlin.Enum<Your> {
|
|
@Field enum entry FIRST
|
|
|
|
private constructor Your()
|
|
public final override /*1*/ /*fake_override*/ val name: kotlin.String
|
|
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
|
|
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
|
|
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: Your): kotlin.Int
|
|
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
|
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
|
|
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<Your!>!
|
|
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
|
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
|
|
|
// Static members
|
|
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): Your
|
|
public final /*synthesized*/ fun values(): kotlin.Array<Your>
|
|
}
|