Merge use-site targeted annotations into corresponding Annotations

Add PropertyDescriptor.backingField/delegateField to store annotations
on the field directly in an otherwise almost empty descriptor instance,
instead of storing them with use-sites in the corresponding property
descriptor. Instead of AnnotationWithTarget, create AnnotationDescriptor
instances in AnnotationSplitter. Change DescriptorRenderer to render
annotations on "related" declarations when needed, with the explicit
use-site target if applicable.

Most changes in diagnostic test data are related to the fact that
annotations which are known to have an incompatible use-site to the
declaration they're applied at (such as `@param:`-annotation on a
function), are now not loaded at all. It's fine because the code is
erroneous, so it doesn't really matter how do we load annotations with
invalid targets (some of this logic is also changed freely in subsequent
commits). Some changes are also explained by the fact that for example
an annotation on the property which is only applicable to FIELD is now
rendered with an explicit use-site target `@field:`, regardless of
whether it did have that use-site target syntactically or not.

Basically, after this change there's no point in calling
Annotations.getUseSiteTargetedAnnotations/getAllAnnotations anymore
because it's easier and more intuitive to just use Annotations of the
corresponding descriptor -- the backing / delegate field (introduced in
this commit) or the extension receiver / setter parameter (related
behavior was fixed in previous commits). Usages of
use-site-target-related methods will be refactored out in subsequent
commits
This commit is contained in:
Alexander Udalov
2018-08-14 16:45:11 +02:00
parent 8c21e86ded
commit fc87043cb3
68 changed files with 436 additions and 386 deletions
@@ -1,7 +1,7 @@
package
package a {
@java.lang.Deprecated @java.lang.SuppressWarnings(value = {}) public val s: kotlin.String = ""
@field:java.lang.Deprecated @field:java.lang.SuppressWarnings(value = {}) public val s: kotlin.String = ""
@java.lang.Deprecated @java.lang.SuppressWarnings(value = {}) public fun main(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit
public final class Test {
@@ -1,6 +1,6 @@
package
public var bar: kotlin.Int
@setparam:[ERROR : varargs] /* annotation class not found */ public var bar: kotlin.Int
public val x: (kotlin.Int) -> kotlin.Int
public fun foo(/*0*/ @[ERROR : varargs] /* annotation class not found */ f: kotlin.Int): kotlin.Unit
@@ -1,6 +1,6 @@
package
public var bar: kotlin.Int
@setparam:test public var bar: kotlin.Int
public val x: (kotlin.Int) -> kotlin.Int
public fun foo(/*0*/ @test f: kotlin.Int): kotlin.Unit
@@ -1,6 +1,6 @@
package
public var x: kotlin.Int
@setparam:Ann public var x: kotlin.Int
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.CLASS}) public final annotation class Ann : kotlin.Annotation {
public constructor Ann()
@@ -1,6 +1,6 @@
package
@Field public val x: kotlin.Int = 42
@field:Field public val x: kotlin.Int = 42
@Field public val y: kotlin.Int
@Field public final annotation class Another : kotlin.Annotation {
@@ -28,8 +28,8 @@ public interface His {
@Field public abstract class My {
public constructor My(/*0*/ @Field arg: kotlin.Int, /*1*/ w: kotlin.Int)
@Field public final val v: kotlin.Int
@Field public final val w: kotlin.Int
@Field public final val x: kotlin.Int
@field:Field public final val w: kotlin.Int
@field:Field public final val x: kotlin.Int
@Field public final val y: kotlin.Int
@Field public abstract val z: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -75,8 +75,8 @@ package test {
@test.AnnotationTargets.base @test.AnnotationTargets.meta @test.AnnotationTargets.type @test.AnnotationTargets.method @test.AnnotationTargets.multiple public final class KClass {
@test.AnnotationTargets.base @test.AnnotationTargets.method @test.AnnotationTargets.konstructor public constructor KClass()
public constructor KClass(/*0*/ @test.AnnotationTargets.base @test.AnnotationTargets.parameter y: @test.AnnotationTargets.base @test.AnnotationTargets.type kotlin.Int)
@test.AnnotationTargets.base @test.AnnotationTargets.multiple @test.AnnotationTargets.fieldann @test.AnnotationTargets.local public final val x: kotlin.Int = 0
@test.AnnotationTargets.fieldann public final val y: @test.AnnotationTargets.base @test.AnnotationTargets.type kotlin.Int
@test.AnnotationTargets.base @test.AnnotationTargets.local @field:test.AnnotationTargets.multiple @field:test.AnnotationTargets.fieldann public final val x: kotlin.Int = 0
@field:test.AnnotationTargets.fieldann public final val y: @test.AnnotationTargets.base @test.AnnotationTargets.type kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@test.AnnotationTargets.base @test.AnnotationTargets.method @test.AnnotationTargets.multiple @test.AnnotationTargets.konstructor public final fun foo(/*0*/ @test.AnnotationTargets.parameter @test.AnnotationTargets.type i: @test.AnnotationTargets.base @test.AnnotationTargets.multiple kotlin.Int): @test.AnnotationTargets.fieldann @test.AnnotationTargets.parameter kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,7 +1,7 @@
package
@unrepann(x = 0) public var annotated: kotlin.Int
@unrepann(x = 0) @property:unrepann(x = 1) public var annotated2: kotlin.Int
@unrepann(x = 0) @unrepann(x = 1) public var annotated2: kotlin.Int
@ann(y = 0) @ann(y = 1) public fun foo(/*0*/ @ann(y = 7) @ann(y = 2) x: kotlin.Int): kotlin.Int
@unrepann(x = 1) @unrepann(x = 2) public final class DoubleAnnotated {
@@ -1,6 +1,6 @@
package
public fun foo(/*0*/ @delegate:Field @delegate:Prop x: kotlin.Int): kotlin.Int
public fun foo(/*0*/ x: kotlin.Int): kotlin.Int
public final class CustomDelegate {
public constructor CustomDelegate()
@@ -24,19 +24,19 @@ public final class CustomDelegate {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@delegate:Field public final class SomeClass {
@delegate:Field public constructor SomeClass()
public final class SomeClass {
public constructor SomeClass()
@delegate:Field @delegate:Prop protected final val delegatedProperty: kotlin.String
@delegate:Field @delegate:Prop public final val propertyWithCustomGetter: kotlin.Int
@delegate:Field @delegate:Prop protected final val simpleProperty: kotlin.String = "text"
public final val propertyWithCustomGetter: kotlin.Int
protected final val simpleProperty: kotlin.String = "text"
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 final class WithPrimaryConstructor {
public constructor WithPrimaryConstructor(/*0*/ a: kotlin.String, /*1*/ @param:Field @param:Prop b: kotlin.String)
@delegate:Field @delegate:Prop public final val a: kotlin.String
public constructor WithPrimaryConstructor(/*0*/ a: kotlin.String, /*1*/ @Field @Prop b: kotlin.String)
public final val a: kotlin.String
public final val b: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -15,13 +15,13 @@ public final class CustomDelegate {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@field:Ann public final class SomeClass {
@field:Ann public constructor SomeClass()
@field:Ann protected final val delegatedProperty: kotlin.String
@field:Ann public final val propertyWithCustomGetter: kotlin.Int
public final class SomeClass {
public constructor SomeClass()
protected final val delegatedProperty: kotlin.String
public final val propertyWithCustomGetter: kotlin.Int
@field:Ann protected final val simpleProperty: kotlin.String = "text"
@field:Ann protected final val simplePropertyWithAnnotationList: kotlin.String = "text"
@field:Ann public final fun anotherFun(/*0*/ @field:Ann s: kotlin.String): kotlin.Unit
public final fun anotherFun(/*0*/ s: kotlin.String): kotlin.Unit
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
@@ -15,14 +15,14 @@ public final class CustomDelegate {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@get:Ann public final class SomeClass {
@get:Ann public constructor SomeClass()
public final class SomeClass {
public constructor SomeClass()
protected final val delegatedProperty: kotlin.String
protected final var mutableProperty: kotlin.String
public final val propertyWithCustomGetter: kotlin.Int
protected final val simpleProperty: kotlin.String = "text"
protected final val simplePropertyWithAnnotationList: kotlin.String = "text"
@get:Ann public final fun annotationOnFunction(/*0*/ a: kotlin.Int): kotlin.Int
public final fun annotationOnFunction(/*0*/ a: kotlin.Int): kotlin.Int
public final fun anotherFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -8,7 +8,7 @@ public final annotation class Ann : kotlin.Annotation {
}
public final class PrimaryConstructorClass {
public constructor PrimaryConstructorClass(/*0*/ @param:Ann a: kotlin.String, /*1*/ @param:Ann @param:Second b: kotlin.String, /*2*/ @param:Ann c: kotlin.String)
public constructor PrimaryConstructorClass(/*0*/ a: kotlin.String, /*1*/ b: kotlin.String, /*2*/ @Ann c: kotlin.String)
public final val c: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -22,10 +22,10 @@ public final annotation class Second : kotlin.Annotation {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@param:Ann public final class SomeClass {
@param:Ann public constructor SomeClass(/*0*/ @param:Ann a: kotlin.String)
@param:Ann protected final val simpleProperty: kotlin.String = "text"
@param:Ann public final fun anotherFun(): kotlin.Unit
public final class SomeClass {
public constructor SomeClass(/*0*/ a: kotlin.String)
protected final val simpleProperty: kotlin.String = "text"
public final fun anotherFun(): kotlin.Unit
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
@@ -22,14 +22,14 @@ public final annotation class Second : kotlin.Annotation {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@property:Ann public final class SomeClass {
@property:Ann public constructor SomeClass(/*0*/ s: kotlin.String)
@property:Ann protected final val p1: kotlin.String = ""
@property:Ann @property:Second protected final val p2: kotlin.String = ""
@property:Ann protected final var p3: kotlin.String
@property:Ann protected final val p4: kotlin.String
@property:Ann public final var propertyWithCustomSetter: kotlin.Int
@property:Ann public final fun anotherFun(): kotlin.Unit
public final class SomeClass {
public constructor SomeClass(/*0*/ s: kotlin.String)
@Ann protected final val p1: kotlin.String = ""
@Ann @Second protected final val p2: kotlin.String = ""
@Ann protected final var p3: kotlin.String
@Ann protected final val p4: kotlin.String
@Ann public final var propertyWithCustomSetter: kotlin.Int
public final fun anotherFun(): kotlin.Unit
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
@@ -10,11 +10,11 @@ public final annotation class Ann : kotlin.Annotation {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@receiver:Ann public final class SomeClass {
@receiver:Ann public constructor SomeClass(/*0*/ @receiver:Ann a: kotlin.String)
@receiver:Ann protected final val simpleProperty: kotlin.String = "text"
public final class SomeClass {
public constructor SomeClass(/*0*/ a: kotlin.String)
protected final val simpleProperty: kotlin.String = "text"
public final val @receiver:Ann kotlin.String.extensionProperty2: kotlin.String
@receiver:Ann public final fun anotherFun(): kotlin.Unit
public final fun anotherFun(): kotlin.Unit
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
@@ -16,14 +16,14 @@ public final class CustomDelegate {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@set:Ann public final class SomeClass {
public final class SomeClass {
public constructor SomeClass()
protected final var delegatedProperty: kotlin.String
protected final var mutableProperty: kotlin.String
protected final var mutablePropertyWithAnnotationList: kotlin.String
public final var propertyWithCustomSetter: kotlin.Int
@set:Ann protected final val simpleProperty: kotlin.String = "text"
@set:Ann public final fun annotationOnFunction(/*0*/ a: kotlin.Int): kotlin.Int
protected final val simpleProperty: kotlin.String = "text"
public final fun annotationOnFunction(/*0*/ a: kotlin.Int): kotlin.Int
public final fun anotherFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -16,14 +16,14 @@ public final class CustomDelegate {
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@setparam:Ann public final class SomeClass {
@setparam:Ann public constructor SomeClass()
public final class SomeClass {
public constructor SomeClass()
@setparam:Ann protected final var delegatedProperty: kotlin.String
@setparam:Ann protected final var mutableProperty: kotlin.String
@setparam:Ann protected final var mutablePropertyWithAnnotationList: kotlin.String
@setparam:Ann public final var propertyWithCustomSetter: kotlin.Int
@setparam:Ann protected final val simpleProperty: kotlin.String = "text"
@setparam:Ann public final fun anotherFun(): kotlin.Unit
protected final val simpleProperty: kotlin.String = "text"
public final fun anotherFun(): kotlin.Unit
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
@@ -1,10 +1,10 @@
package
package bar {
@file:bar.foo public val prop: [ERROR : No type, no body]
@file:bar.bar @file:bar.baz public fun func(): kotlin.Unit
public val prop: [ERROR : No type, no body]
public fun func(): kotlin.Unit
@file:bar.baz public final class C {
public final class C {
public constructor C()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,6 +1,6 @@
package
@foo @bar @file:baz public fun test(): kotlin.Unit
@foo @bar public fun test(): kotlin.Unit
public final annotation class bar : kotlin.Annotation {
public constructor bar()
@@ -1,6 +1,6 @@
package
@foo @bar @file:baz public fun test(): kotlin.Unit
@foo @bar public fun test(): kotlin.Unit
public final annotation class bar : kotlin.Annotation {
public constructor bar()
@@ -1,11 +1,11 @@
package
public fun test1(/*0*/ @file:kotlin.Suppress(names = {""}) x: kotlin.Int): kotlin.Unit
@file:kotlin.Suppress(names = {""}) public fun test2(): kotlin.Unit
public fun @file:kotlin.Suppress(names = {""}) kotlin.Int.test3(): kotlin.Unit
public fun test1(/*0*/ x: kotlin.Int): kotlin.Unit
public fun test2(): kotlin.Unit
public fun kotlin.Int.test3(): kotlin.Unit
public final class OnType {
public constructor OnType(/*0*/ x: @file:kotlin.Suppress(names = {""}) kotlin.Int)
public constructor OnType(/*0*/ x: 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
@@ -1,11 +1,11 @@
package
public fun test1(/*0*/ @file:kotlin.Suppress(names = {""}) x: kotlin.Int): kotlin.Unit
@file:kotlin.Suppress(names = {""}) public fun test2(): kotlin.Unit
public fun @file:kotlin.Suppress(names = {""}) kotlin.Int.test3(): kotlin.Unit
public fun test1(/*0*/ x: kotlin.Int): kotlin.Unit
public fun test2(): kotlin.Unit
public fun kotlin.Int.test3(): kotlin.Unit
public final class OnType {
public constructor OnType(/*0*/ x: @file:kotlin.Suppress(names = {""}) kotlin.Int)
public constructor OnType(/*0*/ x: 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
@@ -1,8 +1,8 @@
package
public val @receiver:Fancy kotlin.Int.asVal: kotlin.Int
public fun ((@receiver:Fancy kotlin.Int) -> kotlin.Unit).complexReceiver1(): kotlin.Unit
public fun ((kotlin.Int) -> @receiver:Fancy kotlin.Unit).complexReceiver2(): kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).complexReceiver1(): kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).complexReceiver2(): kotlin.Unit
public fun @receiver:Fancy kotlin.String.myExtension(): kotlin.Unit
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) public final annotation class Fancy : kotlin.Annotation {
@@ -1,8 +1,8 @@
package
public val @receiver:Fancy kotlin.Int.asVal: kotlin.Int
public fun ((@receiver:Fancy kotlin.Int) -> kotlin.Unit).complexReceiver1(): kotlin.Unit
public fun ((kotlin.Int) -> @receiver:Fancy kotlin.Unit).complexReceiver2(): kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).complexReceiver1(): kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).complexReceiver2(): kotlin.Unit
public fun @receiver:Fancy kotlin.String.myExtension(): kotlin.Unit
@kotlin.annotation.Target(allowedTargets = {AnnotationTarget.VALUE_PARAMETER}) public final annotation class Fancy : kotlin.Annotation {
@@ -1,16 +1,16 @@
package
public final class A {
public constructor A(/*0*/ @param:Ann @Ann x: kotlin.Int, /*1*/ @param:RepeatableAnn @Ann y: kotlin.Int)
@property:Ann @RepeatableAnn @property:RepeatableAnn @field:Ann public final val a: kotlin.Int = 0
@Ann @property:Ann @field:Ann public final val b: kotlin.Int = 0
public constructor A(/*0*/ @Ann @Ann x: kotlin.Int, /*1*/ @RepeatableAnn @Ann y: kotlin.Int)
@Ann @RepeatableAnn @RepeatableAnn @field:Ann public final val a: kotlin.Int = 0
@Ann @Ann @field:Ann public final val b: 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 @delegate:RepeatableAnn public final val e: kotlin.String
@property:Ann @delegate:Ann public final val f: kotlin.String
@RepeatableAnn @RepeatableAnn public final val d: kotlin.Int = 0
@RepeatableAnn @RepeatableAnn @delegate:RepeatableAnn public final val e: kotlin.String
@Ann @delegate:Ann public final val f: kotlin.String
@Ann @delegate:Ann public final val g: kotlin.String
@Ann @field:Ann public final val h: kotlin.String = ""
@property:Ann @field:Ann public final val i: kotlin.String = ""
@Ann @field:Ann public final val i: kotlin.String = ""
public final val x: kotlin.Int
public final val y: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -26,10 +26,10 @@ public final annotation class Ann : kotlin.Annotation {
}
public final class B {
public constructor B(/*0*/ @param:fieldOrPropAnn x: kotlin.Int, /*1*/ y: kotlin.Int)
public constructor B(/*0*/ @fieldOrPropAnn x: kotlin.Int, /*1*/ y: kotlin.Int)
@getSetAndParamAnn @setparam:getSetAndParamAnn public final var w: kotlin.Int
@fieldOrPropAnn public final val x: kotlin.Int
@property:fieldOrPropAnn @fieldOrPropAnn public final val y: kotlin.Int
@fieldOrPropAnn @fieldOrPropAnn public final val y: kotlin.Int
@fieldOrPropAnn @field:fieldOrPropAnn public final val z: kotlin.Int = 42
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,9 +1,9 @@
package
public fun test1(/*0*/ i: @setparam:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: @param:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: @receiver:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test4(): @setparam:kotlin.Suppress(names = {}) kotlin.Int
public fun test5(/*0*/ i: (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit
public fun ((@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
public fun test1(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test4(): kotlin.Int
public fun test5(/*0*/ i: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (kotlin.Int) -> kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
@@ -1,9 +1,9 @@
package
public fun test1(/*0*/ i: @setparam:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: @param:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: @receiver:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test4(): @setparam:kotlin.Suppress(names = {}) kotlin.Int
public fun test5(/*0*/ i: (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit
public fun ((@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
public fun test1(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test4(): kotlin.Int
public fun test5(/*0*/ i: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (kotlin.Int) -> kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
@@ -1,9 +1,9 @@
package
public fun test1(/*0*/ i: @setparam:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: @param:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: @receiver:kotlin.Suppress(names = {}) kotlin.Int): kotlin.Unit
public fun test4(): @setparam:kotlin.Suppress(names = {}) kotlin.Int
public fun test5(/*0*/ i: (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit
public fun ((@setparam:kotlin.Suppress(names = {}) kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
public fun test1(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test2(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test3(/*0*/ i: kotlin.Int): kotlin.Unit
public fun test4(): kotlin.Int
public fun test5(/*0*/ i: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun test7(): (kotlin.Int) -> kotlin.Unit
public fun ((kotlin.Int) -> kotlin.Unit).test6(): kotlin.Unit
@@ -10,7 +10,7 @@ package
public final class B : A {
public constructor B(/*0*/ foo: kotlin.String)
@property:kotlin.Deprecated private final val foo: kotlin.String
@kotlin.Deprecated private final val foo: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ fun getFoo(/*0*/ text: kotlin.String): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -6,7 +6,7 @@ public fun literals(): kotlin.Unit
public final class PropertyHolder {
public constructor PropertyHolder()
@kotlin.Deprecated(message = "") public final val a1: kotlin.Int = 1
@property:kotlin.Deprecated(message = "") public final var a2: kotlin.String
@kotlin.Deprecated(message = "") public final var a2: kotlin.String
public final val withGetter: kotlin.String = ""
public final var withSetter: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -2,7 +2,7 @@ package
package foo {
@kotlin.js.JsName(name = "xx") public val foo.A.x: kotlin.Int
@property:kotlin.js.JsName(name = "yy") public val foo.A.y: kotlin.Int
@kotlin.js.JsName(name = "yy") public val foo.A.y: kotlin.Int
public final class A {
public constructor A()
@@ -2,7 +2,7 @@ package
public final class A {
public constructor A()
@property:kotlin.js.JsName(name = "x_") public final val x: kotlin.Int = 0
@kotlin.js.JsName(name = "x_") public final val x: kotlin.Int = 0
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 hashCode(): kotlin.Int
@@ -3,8 +3,8 @@ package
public final class My {
public constructor My()
@field:kotlin.jvm.Volatile public final val w: kotlin.Int = 2
@kotlin.jvm.Volatile public final val x: kotlin.Int = 0
@kotlin.jvm.Volatile public final var y: kotlin.Int
@field:kotlin.jvm.Volatile public final val x: kotlin.Int = 0
@field:kotlin.jvm.Volatile public final var y: kotlin.Int
@delegate:kotlin.jvm.Volatile public final var z: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -1,6 +1,6 @@
interface Test {
@get:JvmStatic
val a: Int
<!JVM_STATIC_NOT_IN_OBJECT_OR_CLASS_COMPANION!>@get:JvmStatic
val a: Int<!>
<!INAPPLICABLE_JVM_NAME!>@get:JvmName("1")<!>
val b: Int
@@ -8,6 +8,6 @@ interface Test {
<!SYNCHRONIZED_ON_ABSTRACT!>@get:Synchronized<!>
val c: Int
<!WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@get:JvmOverloads<!>
<!OVERLOADS_INTERFACE, WRONG_ANNOTATION_TARGET_WITH_USE_SITE_TARGET!>@get:JvmOverloads<!>
val d: Int
}
}
@@ -59,9 +59,9 @@ public final class Foo {
}
private final class Other {
public constructor Other(/*0*/ @param:Ann param: kotlin.Int)
public constructor Other(/*0*/ @Ann param: kotlin.Int)
@delegate:Ann private final val delegate: kotlin.String
@property:Ann @field:Ann private final val other: kotlin.String = ""
@Ann @field:Ann private final val other: kotlin.String = ""
private final val param: 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
@@ -94,7 +94,7 @@ public final class Statics {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final val x0: kotlin.String = ""
@field:kotlin.jvm.JvmField public final val x0: kotlin.String = ""
public const final val x1: kotlin.String = ""
@kotlin.jvm.JvmStatic public final val x2: kotlin.String = ""
@kotlin.jvm.JvmStatic private final val x3: kotlin.String = ""
@@ -2,7 +2,7 @@ package
public final class A {
public constructor A()
@kotlin.jvm.JvmField public final val clash: kotlin.Int = 1
@field:kotlin.jvm.JvmField public final val clash: kotlin.Int = 1
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
@@ -1,11 +1,11 @@
package
@kotlin.jvm.JvmField public val c: kotlin.Int = 4
@kotlin.jvm.JvmField public var g: kotlin.Int
@field:kotlin.jvm.JvmField public val c: kotlin.Int = 4
@field:kotlin.jvm.JvmField public var g: kotlin.Int
public final class C {
public constructor C()
@kotlin.jvm.JvmField public final var g: kotlin.Int
@field:kotlin.jvm.JvmField public final var g: 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
@@ -1,11 +1,11 @@
package
@kotlin.jvm.JvmField public val c: kotlin.Int = 4
@kotlin.jvm.JvmField public var g: kotlin.Int
@field:kotlin.jvm.JvmField public val c: kotlin.Int = 4
@field:kotlin.jvm.JvmField public var g: kotlin.Int
public final class C {
public constructor C()
@kotlin.jvm.JvmField public final var g: kotlin.Int
@field:kotlin.jvm.JvmField public final var g: 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
@@ -7,7 +7,7 @@ public interface A {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final val c: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final val c: kotlin.Int = 3
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
@@ -21,8 +21,8 @@ public interface B {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final val a: kotlin.Int = 3
@kotlin.jvm.JvmField public final val c: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final val a: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final val c: kotlin.Int = 3
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
@@ -37,7 +37,7 @@ public interface C {
public companion object Companion {
private constructor Companion()
public final val a: kotlin.Int = 3
@kotlin.jvm.JvmField public final val c: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final val c: kotlin.Int = 3
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
@@ -51,7 +51,7 @@ public interface D {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final var c: kotlin.Int
@field:kotlin.jvm.JvmField public final var c: 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
@@ -65,9 +65,9 @@ public interface E {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField private final val a: kotlin.Int = 3
@kotlin.jvm.JvmField internal final val b: kotlin.Int = 3
@kotlin.jvm.JvmField protected final val c: kotlin.Int = 3
@field:kotlin.jvm.JvmField private final val a: kotlin.Int = 3
@field:kotlin.jvm.JvmField internal final val b: kotlin.Int = 3
@field:kotlin.jvm.JvmField protected final val c: kotlin.Int = 3
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
@@ -81,7 +81,7 @@ public interface F {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public open val a: kotlin.Int = 3
@field:kotlin.jvm.JvmField public open val a: kotlin.Int = 3
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
@@ -17,7 +17,7 @@ abstract class C : I{
<!WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!> private fun foo(s: String = "OK") {
}
<!INAPPLICABLE_JVM_FIELD, WRONG_ANNOTATION_TARGET!>@JvmField<!> val a: String by lazy { "A" }
<!WRONG_ANNOTATION_TARGET!>@JvmField<!> val a: String by lazy { "A" }
<!INAPPLICABLE_JVM_FIELD!>@JvmField<!> open val b: Int = 3
@@ -1,25 +1,25 @@
package
@kotlin.jvm.JvmField public const val Const: kotlin.Int = 4
@kotlin.jvm.JvmField public var i: kotlin.Int
@kotlin.jvm.JvmField private val private: kotlin.Int = 3
@field:kotlin.jvm.JvmField public const val Const: kotlin.Int = 4
@field:kotlin.jvm.JvmField public var i: kotlin.Int
@field:kotlin.jvm.JvmField private val private: kotlin.Int = 3
@kotlin.jvm.JvmField public fun foo(): kotlin.Unit
@kotlin.jvm.JvmField public abstract class C : I {
@kotlin.jvm.JvmField public constructor C(/*0*/ s: kotlin.String)
@kotlin.jvm.JvmField public final val a: kotlin.String
@kotlin.jvm.JvmField public final override /*1*/ val ai: kotlin.Int = 3
@kotlin.jvm.JvmField public open val b: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final override /*1*/ val ai: kotlin.Int = 3
@field:kotlin.jvm.JvmField public open val b: kotlin.Int = 3
@kotlin.jvm.JvmField public open override /*1*/ /*fake_override*/ val bi: kotlin.Int
@kotlin.jvm.JvmField public abstract val c: kotlin.Int
@kotlin.jvm.JvmField public final val customGetter: kotlin.String = ""
@kotlin.jvm.JvmField public final var customSetter: kotlin.String
@kotlin.jvm.JvmField public final val explicitDefaultAnnotatedGetter: kotlin.String = ""
@kotlin.jvm.JvmField public final var explicitDefaultAnnotatedSetter: kotlin.String
@kotlin.jvm.JvmField public final val explicitDefaultGetter: kotlin.String = ""
@kotlin.jvm.JvmField public final var explicitDefaultSetter: kotlin.String
@field:kotlin.jvm.JvmField public final val customGetter: kotlin.String = ""
@field:kotlin.jvm.JvmField public final var customSetter: kotlin.String
@field:kotlin.jvm.JvmField public final val explicitDefaultAnnotatedGetter: kotlin.String = ""
@field:kotlin.jvm.JvmField public final var explicitDefaultAnnotatedSetter: kotlin.String
@field:kotlin.jvm.JvmField public final val explicitDefaultGetter: kotlin.String = ""
@field:kotlin.jvm.JvmField public final var explicitDefaultSetter: kotlin.String
@kotlin.jvm.JvmField public final val noBackingField: kotlin.String
@kotlin.jvm.JvmField private final val private: kotlin.Int = 3
@field:kotlin.jvm.JvmField private final val private: kotlin.Int = 3
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@kotlin.jvm.JvmField private final fun foo(/*0*/ s: kotlin.String = ...): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -35,7 +35,7 @@ public final annotation class DemoAnnotation : kotlin.Annotation {
public final class G {
public constructor G()
@kotlin.jvm.JvmField public final lateinit var lateInit: kotlin.String
@field:kotlin.jvm.JvmField public final lateinit var lateInit: kotlin.String
@delegate:kotlin.jvm.JvmField public final val s: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -50,7 +50,7 @@ public final class H {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final var c: kotlin.Int
@field:kotlin.jvm.JvmField public final var c: 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
@@ -74,7 +74,7 @@ public interface K {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final var c: kotlin.Int
@field:kotlin.jvm.JvmField public final var c: kotlin.Int
public final var x: 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
@@ -84,8 +84,8 @@ public interface K {
public final class KK : K {
public constructor KK()
@kotlin.jvm.JvmField public open override /*1*/ val i: kotlin.Int = 0
@kotlin.jvm.JvmField public final override /*1*/ val j: kotlin.Int = 0
@field:kotlin.jvm.JvmField public open override /*1*/ val i: kotlin.Int = 0
@field:kotlin.jvm.JvmField public final override /*1*/ val j: kotlin.Int = 0
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
@@ -93,8 +93,8 @@ public final class KK : K {
public open class KKK : K {
public constructor KKK()
@kotlin.jvm.JvmField public open override /*1*/ val i: kotlin.Int = 0
@kotlin.jvm.JvmField public final override /*1*/ val j: kotlin.Int = 0
@field:kotlin.jvm.JvmField public open override /*1*/ val i: kotlin.Int = 0
@field:kotlin.jvm.JvmField public final override /*1*/ val j: kotlin.Int = 0
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
@@ -108,7 +108,7 @@ public final annotation class L : kotlin.Annotation {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmField public final var c: kotlin.Int
@field:kotlin.jvm.JvmField public final var c: 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
@@ -117,7 +117,7 @@ public final annotation class L : kotlin.Annotation {
public object O {
private constructor O()
@kotlin.jvm.JvmField public final val c: kotlin.Int = 3
@field:kotlin.jvm.JvmField public final val c: kotlin.Int = 3
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
@@ -8,7 +8,7 @@ public final class A {
public companion object Companion {
private constructor Companion()
@kotlin.jvm.JvmStatic @kotlin.jvm.JvmField public final val x: kotlin.Int = 1
@kotlin.jvm.JvmStatic @field:kotlin.jvm.JvmField public final val x: kotlin.Int = 1
@kotlin.jvm.JvmStatic public const final val z: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
@@ -18,7 +18,7 @@ public final class A {
public object B {
private constructor B()
@kotlin.jvm.JvmStatic @kotlin.jvm.JvmField public final val x: kotlin.Int = 1
@kotlin.jvm.JvmStatic @field:kotlin.jvm.JvmField public final val x: kotlin.Int = 1
@kotlin.jvm.JvmStatic public const final val z: kotlin.Int = 1
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int