[FIR] Fix all usages of annotations due to new FirAnnotation hierarchy
This commit is contained in:
committed by
teamcityserver
parent
2e7564a21e
commit
5769d42248
+3
-3
@@ -1,11 +1,11 @@
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class MyNullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.NEVER|()) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class MyNullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|MyNullable|
|
||||
|
||||
}
|
||||
public open class NonNullNever : R|kotlin/Any| {
|
||||
@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) public open field field: R|kotlin/String?|
|
||||
@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.NEVER|()) public open field field: R|kotlin/String?|
|
||||
|
||||
@R|MyNullable|() public open fun foo(@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) x: R|kotlin/String?|, @R|MyNullable|() y: R|ft<kotlin/CharSequence, kotlin/CharSequence?>|): R|ft<kotlin/String, kotlin/String?>|
|
||||
@R|MyNullable|() public open fun foo(@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.NEVER|()) x: R|kotlin/String?|, @R|MyNullable|() y: R|ft<kotlin/CharSequence, kotlin/CharSequence?>|): R|ft<kotlin/String, kotlin/String?>|
|
||||
|
||||
public constructor(): R|NonNullNever|
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
public open class Strange : R|kotlin/Any| {
|
||||
@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) public open field field: R|ft<kotlin/String, kotlin/String?>|
|
||||
@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.UNKNOWN|()) public open field field: R|ft<kotlin/String, kotlin/String?>|
|
||||
|
||||
@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) public open fun foo(@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.ALWAYS|()) x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.NEVER|()) y: R|kotlin/CharSequence?|): R|kotlin/String?|
|
||||
@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.MAYBE|()) public open fun foo(@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.ALWAYS|()) x: R|@EnhancedNullability kotlin/String|, @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.NEVER|()) y: R|kotlin/CharSequence?|): R|kotlin/String?|
|
||||
|
||||
@R|javax/annotation/Nonnull|() public open fun bar(): R|@EnhancedNullability kotlin/String|
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
public constructor(): R|A|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public final annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public final annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|FieldsAreNullable|
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -6,19 +6,19 @@
|
||||
public constructor(): R|A|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/ForceFlexibility|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/Nullable|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/UnknownNullability|
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -5,7 +5,7 @@
|
||||
|
||||
public open fun baz(@R|spr/UnknownNullability|() x: R|@EnhancedNullability kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
public open fun foobar(@R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) x: R|ft<kotlin/String, kotlin/String?>|): R|kotlin/Unit|
|
||||
public open fun foobar(@R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.UNKNOWN|()) x: R|ft<kotlin/String, kotlin/String?>|): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|A|
|
||||
|
||||
@@ -20,15 +20,15 @@ public abstract interface B : R|kotlin/Any| {
|
||||
public abstract fun foobar(@R|javax/annotation/Nonnull|() x: R|@EnhancedNullability kotlin/String|): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|spr/UnknownNullability|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class ForceFlexibility : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/ForceFlexibility|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/meta/TypeQualifierNickname|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.UNKNOWN|()) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class UnknownNullability : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/UnknownNullability|
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -54,11 +54,11 @@
|
||||
public constructor(): R|C|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NullableApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NullableApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|NullableApi|
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -40,15 +40,15 @@
|
||||
|
||||
}
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public final annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.FIELD|())) public final annotation class FieldsAreNullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|FieldsAreNullable|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NullableApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/CheckForNull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|(), R|java/lang/annotation/ElementType.FIELD|())) public final annotation class NullableApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|NullableApi|
|
||||
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -10,11 +10,11 @@
|
||||
public constructor(): R|A|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/Nullable|
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,11 +10,11 @@ public open class A : R|kotlin/Any| {
|
||||
public constructor(): R|test/A|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>()) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(<implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg()) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|() @R|javax/annotation/meta/TypeQualifierDefault|(value = <implicitArrayOf>(R|java/lang/annotation/ElementType.METHOD|(), R|java/lang/annotation/ElementType.PARAMETER|())) public final annotation class NonNullApi : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/NonNullApi|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) @R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) @R|kotlin/annotation/MustBeDocumented|() @R|javax/annotation/Nonnull|(when = R|javax/annotation/meta/When.MAYBE|()) @R|javax/annotation/meta/TypeQualifierNickname|() public final annotation class Nullable : R|kotlin/Annotation| {
|
||||
public constructor(): R|spr/Nullable|
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,17 +1,17 @@
|
||||
FILE: annotationUsedAsAnnotationArgument.kt
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(value = Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann : R|kotlin/Annotation| {
|
||||
public constructor(): R|Ann| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann2 : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(value = Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann2 : R|kotlin/Annotation| {
|
||||
public constructor(): R|Ann2| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann3 : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) @R|kotlin/annotation/Retention|(value = Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) public final annotation class Ann3 : R|kotlin/Annotation| {
|
||||
public constructor(arg: R|kotlin/Int|, s: R|kotlin/String|): R|Ann3| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -23,5 +23,5 @@ FILE: annotationUsedAsAnnotationArgument.kt
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
}
|
||||
@R|Ann3|(@R|Ann3|(@R|Ann|() Int(5), String()) @R|Ann2|() Int(1), String()) public final val a: R|kotlin/Int| = Int(0)
|
||||
@R|Ann3|(arg = @R|Ann3|(arg = @R|Ann|() Int(5), s = String()) @R|Ann2|() Int(1), s = String()) public final val a: R|kotlin/Int| = Int(0)
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ FILE: argumentsOfAnnotations.kt
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
@R|AnnVarargs|(Int(1), String(a), String(b), String(c), Int(2)) public final class B : R|kotlin/Any| {
|
||||
@R|AnnVarargs|(x = Int(1), y = Int(2)) public final class B : R|kotlin/Any| {
|
||||
public constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: main.kt
|
||||
@R|Ann|(x = Int(10), s = String()) @R|Ann|(Int(10), String()) @R|Ann|(x = Int(10), s = String(), y = Int(10)) public final class A : R|kotlin/Any| {
|
||||
@R|Ann|(x = Int(10), s = String()) @R|Ann|(s = Int(10), x = String()) @R|Ann|(x = Int(10), s = String(), y = Int(10)) public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -61,6 +61,6 @@ FILE: integerLiteralTypes.kt
|
||||
public get(): R|kotlin/Byte|
|
||||
|
||||
}
|
||||
@R|Ann|(Byte(10)) public final fun test_6(): R|kotlin/Unit| {
|
||||
@R|Ann|(Int(300)) lval x: R|kotlin/String| = String()
|
||||
@R|Ann|(x = Byte(10)) public final fun test_6(): R|kotlin/Unit| {
|
||||
@R|Ann|(x = Int(300)) lval x: R|kotlin/String| = String()
|
||||
}
|
||||
|
||||
Vendored
+3
-3
@@ -1,7 +1,7 @@
|
||||
FILE: main.kt
|
||||
@R|Ann|(vararg(String(a), String(b))) public final fun test_1(): R|kotlin/Unit| {
|
||||
@R|Ann|(value = vararg(String(a), String(b))) public final fun test_1(): R|kotlin/Unit| {
|
||||
}
|
||||
@R|Ann|(<implicitArrayOf>(String(a), String(b))) public final fun test_2(): R|kotlin/Unit| {
|
||||
@R|Ann|(value = <implicitArrayOf>(String(a), String(b))) public final fun test_2(): R|kotlin/Unit| {
|
||||
}
|
||||
@R|Ann|(vararg(*<implicitArrayOf>(String(a), String(b)))) public final fun test_3(): R|kotlin/Unit| {
|
||||
@R|Ann|(value = vararg(*<implicitArrayOf>(String(a), String(b)))) public final fun test_3(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ FILE: namedArrayInAnnotation.kt
|
||||
public get(): R|kotlin/Array<out kotlin/String>|
|
||||
|
||||
}
|
||||
@R|Ann|(vararg(strings = <implicitArrayOf>(String(hello)))) public final class A : R|kotlin/Any| {
|
||||
@R|Ann|(strings = vararg(strings = <implicitArrayOf>(String(hello)))) public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@ FILE: nestedClassInAnnotationArgument.kt
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@R|Ann|(<getClass>(Q|A.EmptyList|)) public final fun foo(): R|kotlin/Unit| {
|
||||
@R|Ann|(kClass = <getClass>(Q|A.EmptyList|)) public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public final object EmptyList : R|kotlin/Any| {
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ FILE: annotationArgumentKClassLiteralTypeError.kt
|
||||
}
|
||||
public final val <reified T> R|T|.test: R|kotlin/Any|
|
||||
public inline get(): R|kotlin/Any| {
|
||||
^ @R|Ann|(<implicitArrayOf>(<getClass>(R|T|), <getClass>(Q|kotlin/Array|))) object : R|kotlin/Any| {
|
||||
^ @R|Ann|(a = <implicitArrayOf>(<getClass>(R|T|), <getClass>(Q|kotlin/Array|))) object : R|kotlin/Any| {
|
||||
private constructor(): R|<anonymous><T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -50,5 +50,5 @@ FILE: annotationArgumentMustBeConst.kt
|
||||
public get(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
@R|Ann1|(vararg(R|/foo|, R|/foo|.R|kotlin/String.plus|(R|/bar|), <strcat>(R|/foo|, String( ), R|/bar|), <strcat>(R|/baz|(), String( )))) @R|Ann2|(<implicitArrayOf>(R|/bar|, R|/baz|(), R|/bar|.R|kotlin/Int.plus|(R|/cnst|))) @R|Ann3|(R|/arr|) public final fun test(): R|kotlin/Unit| {
|
||||
@R|Ann1|(a = vararg(R|/foo|, R|/foo|.R|kotlin/String.plus|(R|/bar|), <strcat>(R|/foo|, String( ), R|/bar|), <strcat>(R|/baz|(), String( )))) @R|Ann2|(a = <implicitArrayOf>(R|/bar|, R|/baz|(), R|/bar|.R|kotlin/Int.plus|(R|/cnst|))) @R|Ann3|(a = R|/arr|) public final fun test(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -26,5 +26,5 @@ FILE: annotationArgumentMustBeEnumConst.kt
|
||||
public final var bar: R|TestEnum| = Q|TestEnum|.R|/TestEnum.Foo|
|
||||
public get(): R|TestEnum|
|
||||
public set(value: R|TestEnum|): R|kotlin/Unit|
|
||||
@R|Ann|(vararg(R|/foo|, R|/bar|)) public final fun test(): R|kotlin/Unit| {
|
||||
@R|Ann|(a = vararg(R|/foo|, R|/bar|)) public final fun test(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+1
-1
@@ -19,5 +19,5 @@ FILE: annotationArgumentMustBeKClassLiteral.kt
|
||||
public final fun bar(): R|kotlin/reflect/KClass<Foo>| {
|
||||
^bar <getClass>(Q|Foo|)
|
||||
}
|
||||
@R|Ann|(<implicitArrayOf>(<getClass>(String()), <getClass>(Boolean(true)), <getClass>(Int(1)))) @R|Ann|(<implicitArrayOf>(R|/foo|, R|/bar|())) public final fun test1(): R|kotlin/Unit| {
|
||||
@R|Ann|(a = <implicitArrayOf>(<getClass>(String()), <getClass>(Boolean(true)), <getClass>(Int(1)))) @R|Ann|(a = <implicitArrayOf>(R|/foo|, R|/bar|())) public final fun test1(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -15,7 +15,7 @@ FILE: nonConstValInAnnotationArgument.kt
|
||||
public set(value: R|kotlin/Int|): R|kotlin/Unit|
|
||||
public final const val cnst: R|kotlin/Int| = Int(2)
|
||||
public get(): R|kotlin/Int|
|
||||
@R|Ann|(<implicitArrayOf>(R|/foo|, R|/foo|.R|kotlin/String.plus|(R|/cnst|.R|kotlin/Any.toString|()))) public final fun test(): R|kotlin/Unit| {
|
||||
@R|Ann|(a = <implicitArrayOf>(R|/foo|, R|/foo|.R|kotlin/String.plus|(R|/cnst|.R|kotlin/Any.toString|()))) public final fun test(): R|kotlin/Unit| {
|
||||
}
|
||||
public final const val A: R|kotlin/String| = String(foo)
|
||||
public get(): R|kotlin/String|
|
||||
@@ -30,5 +30,5 @@ FILE: nonConstValInAnnotationArgument.kt
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
}
|
||||
@R|S|(R|/A|.R|kotlin/String.plus|(R|/B|)) public final fun foo(): R|kotlin/Unit| {
|
||||
@R|S|(s = R|/A|.R|kotlin/String.plus|(R|/B|)) public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: annotationWithReturn.kt
|
||||
@FILE:R|Some|(^ R|/x|)
|
||||
@FILE:R|Some|(value = ^ R|/x|)
|
||||
public final const val x: R|kotlin/Int| = Int(42)
|
||||
public get(): R|kotlin/Int|
|
||||
public final annotation class Some : R|kotlin/Annotation| {
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: annotations.kt
|
||||
@R|kotlin/annotation/Retention|(Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) @R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) public final annotation class MyAnn : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = Q|kotlin/annotation/AnnotationRetention|.R|kotlin/annotation/AnnotationRetention.SOURCE|) @R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.EXPRESSION|)) public final annotation class MyAnn : R|kotlin/Annotation| {
|
||||
public constructor(): R|MyAnn| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -91,7 +91,7 @@ FILE: CanBeValChecker.kt
|
||||
|
||||
}
|
||||
public final fun withAnnotation(p: R|kotlin/collections/List<kotlin/Any>|): R|kotlin/Unit| {
|
||||
@R|kotlin/Suppress|(vararg(String(UNCHECKED_CAST))) lvar v: R|kotlin/collections/List<kotlin/String>| = (R|<local>/p| as R|kotlin/collections/List<kotlin/String>|)
|
||||
@R|kotlin/Suppress|(names = vararg(String(UNCHECKED_CAST))) lvar v: R|kotlin/collections/List<kotlin/String>| = (R|<local>/p| as R|kotlin/collections/List<kotlin/String>|)
|
||||
R|kotlin/io/print|(R|<local>/v|)
|
||||
}
|
||||
public final fun withReadonlyDeligate(): R|kotlin/Unit| {
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: RedundantExplicitTypeChecker.kt
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|)) public final annotation class A : R|kotlin/Annotation| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: RedundantSetterParameterTypeChecker.kt
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|)) public final annotation class Ann : R|kotlin/Annotation| {
|
||||
public constructor(): R|Ann| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ FILE: localVariable.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|)) public final annotation class Anno : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|)) public final annotation class Anno : R|kotlin/Annotation| {
|
||||
public constructor(): R|Anno| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+1
-1
@@ -10,6 +10,6 @@ FILE: usedInAnnotationArguments.kt
|
||||
}
|
||||
public final fun foo(): R|kotlin/Int| {
|
||||
lval x: R|kotlin/Int| = Int(3)
|
||||
@R|Ann|(R|<local>/x|) lval y: R|kotlin/Int| = Int(5)
|
||||
@R|Ann|(value = R|<local>/x|) lval y: R|kotlin/Int| = Int(5)
|
||||
^foo R|<local>/y|
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
FILE: annotations.kt
|
||||
@R|kotlin/annotation/Target|(vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|)) public final annotation class Simple : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FILE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|)) public final annotation class Simple : R|kotlin/Annotation| {
|
||||
public constructor(): R|annotations/Simple| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
@@ -58,20 +58,20 @@ FILE: annotations.kt
|
||||
}
|
||||
FILE: main.kt
|
||||
@FILE:R|annotations/Simple|()
|
||||
@R|annotations/WithInt|(Int(42)) public abstract class First : R|kotlin/Any| {
|
||||
@R|annotations/WithInt|(value = Int(42)) public abstract class First : R|kotlin/Any| {
|
||||
public constructor(): R|test/First| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@R|annotations/Simple|() public abstract fun foo(@R|annotations/WithString|(String(abc)) arg: R|@R|annotations/Simple|() kotlin/Double|): R|kotlin/Unit|
|
||||
@R|annotations/Simple|() public abstract fun foo(@R|annotations/WithString|(s = String(abc)) arg: R|@R|annotations/Simple|() kotlin/Double|): R|kotlin/Unit|
|
||||
|
||||
@R|annotations/Complex|(R|annotations/WithInt.WithInt|(Int(7)), R|annotations/WithString.WithString|(String())) public abstract val v: R|kotlin/String|
|
||||
@R|annotations/Complex|(wi = R|annotations/WithInt.WithInt|(Int(7)), ws = R|annotations/WithString.WithString|(String())) public abstract val v: R|kotlin/String|
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
}
|
||||
@R|annotations/WithString|(String(xyz)) public final class Second : R|@R|annotations/WithInt|(Int(0)) test/First| {
|
||||
@R|annotations/WithString|(s = String(xyz)) public final class Second : R|@R|annotations/WithInt|(value = Int(0)) test/First| {
|
||||
public constructor(y: R|kotlin/Char|): R|test/Second| {
|
||||
super<R|@R|annotations/WithInt|(Int(0)) test/First|>()
|
||||
super<R|@R|annotations/WithInt|(value = Int(0)) test/First|>()
|
||||
}
|
||||
|
||||
public final val y: R|kotlin/Char| = R|<local>/y|
|
||||
@@ -85,9 +85,9 @@ FILE: main.kt
|
||||
^ String()
|
||||
}
|
||||
|
||||
@R|annotations/WithString|(String(constructor)) public constructor(): R|test/Second| {
|
||||
@R|annotations/WithString|(s = String(constructor)) public constructor(): R|test/Second| {
|
||||
this<R|test/Second|>(Char(10))
|
||||
}
|
||||
|
||||
}
|
||||
@R|annotations/WithInt|(Int(24)) @R|annotations/VeryComplex|(Float(3.14), Double(6.67E-11), Boolean(false), Long(123456789012345), Null(null)) public final typealias Third = R|@R|annotations/Simple|() test/Second|
|
||||
@R|annotations/WithInt|(value = Int(24)) @R|annotations/VeryComplex|(f = Float(3.14), d = Double(6.67E-11), b = Boolean(false), l = Long(123456789012345), n = Null(null)) public final typealias Third = R|@R|annotations/Simple|() test/Second|
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
FILE: allWarnings.kt
|
||||
@R|kotlin/Suppress|(vararg(String(warnings))) public final class A : R|kotlin/Any| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(warnings))) public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,10 +1,10 @@
|
||||
FILE: multipleWarnings.kt
|
||||
@R|kotlin/Suppress|(vararg(String(REDUNDANT_VISIBILITY_MODIFIER))) public final class A : R|kotlin/Any| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(REDUNDANT_VISIBILITY_MODIFIER))) public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
@R|kotlin/Suppress|(vararg(String(REDUNDANT_MODALITY_MODIFIER))) public final fun foo(): R|kotlin/Unit| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(REDUNDANT_MODALITY_MODIFIER))) public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
FILE: singleError.kt
|
||||
public final fun foo(x: R|kotlin/String|): R|kotlin/Unit| {
|
||||
}
|
||||
@R|kotlin/Suppress|(vararg(String(ARGUMENT_TYPE_MISMATCH))) public final fun bar(): R|kotlin/Unit| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(ARGUMENT_TYPE_MISMATCH))) public final fun bar(): R|kotlin/Unit| {
|
||||
<Inapplicable(INAPPLICABLE): /foo>#(Int(10))
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
FILE: singleWarning.kt
|
||||
@R|kotlin/Suppress|(vararg(String(REDUNDANT_VISIBILITY_MODIFIER))) public final fun foo(): R|kotlin/Unit| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(REDUNDANT_VISIBILITY_MODIFIER))) public final fun foo(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
FILE: notNull.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun foo(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun foo(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NULL) -> x != null
|
||||
@@ -14,7 +14,7 @@ FILE: notNull.kt
|
||||
|
||||
^foo R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun bar(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun bar(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(WILDCARD) -> x != null
|
||||
@@ -29,7 +29,7 @@ FILE: notNull.kt
|
||||
|
||||
^bar R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun baz(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun baz(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NULL) -> x != null
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
FILE: propertyGetter.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun R|kotlin/Any?|.isNotNull(): R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun R|kotlin/Any?|.isNotNull(): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> this != null
|
||||
@@ -8,7 +8,7 @@ FILE: propertyGetter.kt
|
||||
[StubStatement]
|
||||
^isNotNull !=(this@R|/isNotNull|, Null(null))
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final val R|kotlin/Any?|.isNotNull: R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final val R|kotlin/Any?|.isNotNull: R|kotlin/Boolean|
|
||||
public get(): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
|
||||
+13
-13
@@ -1,5 +1,5 @@
|
||||
FILE: conditionLogic.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> !x == null
|
||||
@@ -8,7 +8,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test1 R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x is kotlin/String && x != null
|
||||
@@ -17,7 +17,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test2 R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x is kotlin/String? || x is kotlin/Any?
|
||||
@@ -26,7 +26,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test3 R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/String?|, y: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/String?|, y: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null && y != null
|
||||
@@ -35,7 +35,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test4 !=(R|<local>/x|, Null(null)) && !=(R|<local>/y|, Null(null))
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test5(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test5(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null || x is kotlin/Any
|
||||
@@ -44,7 +44,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test5 !=(R|<local>/x|, Null(null))
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test6(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test6(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/String? && x != null
|
||||
@@ -53,7 +53,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test6 (R|<local>/x| is R|kotlin/String|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test7(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test7(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/String? && x != null || x is kotlin/Int
|
||||
@@ -62,7 +62,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test7 (R|<local>/x| is R|kotlin/String|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test8(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test8(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/String || x is kotlin/Int
|
||||
@@ -71,7 +71,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test8 (R|<local>/x| is R|kotlin/String|) || (R|<local>/x| is R|kotlin/Int|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test9(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test9(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/String || x is kotlin/Int
|
||||
@@ -86,7 +86,7 @@ FILE: conditionLogic.kt
|
||||
|
||||
^test9 (R|<local>/x| is R|kotlin/Int|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test10(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test10(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/Comparable<*> || x is kotlin/CharSequence
|
||||
@@ -95,7 +95,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test10 (R|<local>/x| is R|kotlin/String|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test11(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test11(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/Comparable<*> && x is kotlin/CharSequence
|
||||
@@ -104,7 +104,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test11 (R|<local>/x| is R|kotlin/String|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test12(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test12(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x is kotlin/Comparable<*> && x is kotlin/CharSequence || x is kotlin/Number
|
||||
@@ -113,7 +113,7 @@ FILE: conditionLogic.kt
|
||||
[StubStatement]
|
||||
^test12 (R|<local>/x| is R|kotlin/String|) || (R|<local>/x| is R|kotlin/Int|)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test13(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test13(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> (!)x !is kotlin/Comparable<*> || x !is kotlin/CharSequence && (!x is kotlin/Number)
|
||||
|
||||
+6
-6
@@ -1,5 +1,5 @@
|
||||
FILE: inapplicable.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongFalse(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongFalse(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(FALSE) -> x != null
|
||||
@@ -8,7 +8,7 @@ FILE: inapplicable.kt
|
||||
[StubStatement]
|
||||
^wrongFalse Boolean(true)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongTrue(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongTrue(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
@@ -17,7 +17,7 @@ FILE: inapplicable.kt
|
||||
[StubStatement]
|
||||
^wrongTrue Boolean(false)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun nullableConstant(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun nullableConstant(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NULL) -> x != null
|
||||
@@ -29,7 +29,7 @@ FILE: inapplicable.kt
|
||||
public final fun string(): R|kotlin/String| {
|
||||
^string String()
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun nullableReturn(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun nullableReturn(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NULL) -> x != null
|
||||
@@ -38,7 +38,7 @@ FILE: inapplicable.kt
|
||||
[StubStatement]
|
||||
^nullableReturn R|/string|()
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun returnsNull(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun returnsNull(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x != null
|
||||
@@ -47,7 +47,7 @@ FILE: inapplicable.kt
|
||||
[StubStatement]
|
||||
^returnsNull Null(null)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongReturnType(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun wrongReturnType(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
|
||||
+5
-5
@@ -1,5 +1,5 @@
|
||||
FILE: notNull.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(FALSE) -> x != null
|
||||
@@ -8,7 +8,7 @@ FILE: notNull.kt
|
||||
[StubStatement]
|
||||
^test1 ==(R|<local>/x|, Null(null))
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Boolean|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
@@ -17,7 +17,7 @@ FILE: notNull.kt
|
||||
[StubStatement]
|
||||
^test2 !=(R|<local>/x|, Null(null))
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
@@ -32,7 +32,7 @@ FILE: notNull.kt
|
||||
|
||||
^test3 Boolean(false)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
@@ -48,7 +48,7 @@ FILE: notNull.kt
|
||||
|
||||
^test4 Boolean(false)
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test5(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test5(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
FILE: safeCall.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Int?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Int?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x != null
|
||||
@@ -8,7 +8,7 @@ FILE: safeCall.kt
|
||||
[StubStatement]
|
||||
^test1 R|<local>/x|?.{ $subj$.R|kotlin/String.length| }
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Int?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Int?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x is kotlin/Boolean
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
FILE: trickyCases.kt
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test1(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x != null
|
||||
@@ -8,7 +8,7 @@ FILE: trickyCases.kt
|
||||
[StubStatement]
|
||||
^test1 R|<local>/x|
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test2(x: R|kotlin/String?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(TRUE) -> x != null
|
||||
@@ -25,7 +25,7 @@ FILE: trickyCases.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test3(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x != null
|
||||
@@ -42,7 +42,7 @@ FILE: trickyCases.kt
|
||||
}
|
||||
|
||||
}
|
||||
@R|kotlin/OptIn|(vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
@R|kotlin/OptIn|(markerClass = vararg(<getClass>(Q|kotlin/contracts/ExperimentalContracts|))) public final fun test4(x: R|kotlin/Any?|): R|kotlin/Any?|
|
||||
[R|Contract description]
|
||||
<
|
||||
Returns(NOT_NULL) -> x != null
|
||||
|
||||
+1
-1
@@ -1,3 +1,3 @@
|
||||
FILE: jvm.kt
|
||||
@R|some/Nls|(R|some/Nls.Capitalization.Title|) public final fun f(): R|kotlin/Unit| {
|
||||
@R|some/Nls|(capitalization = R|some/Nls.Capitalization.Title|) public final fun f(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: lowPriorityInResolution.kt
|
||||
@R|kotlin/Suppress|(vararg(String(INVISIBLE_MEMBER), String(INVISIBLE_REFERENCE))) @R|kotlin/internal/LowPriorityInOverloadResolution|() public final fun foo(): R|kotlin/Int| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(INVISIBLE_MEMBER), String(INVISIBLE_REFERENCE))) @R|kotlin/internal/LowPriorityInOverloadResolution|() public final fun foo(): R|kotlin/Int| {
|
||||
^foo Int(1)
|
||||
}
|
||||
public final fun foo(): R|kotlin/String| {
|
||||
|
||||
+2
-1
@@ -39,7 +39,8 @@ fun main(args: Array<String>) {
|
||||
alias<FirBinaryLogicExpression>("LogicExpressionChecker")
|
||||
alias<FirReturnExpression>("ReturnExpressionChecker")
|
||||
alias<FirBlock>("BlockChecker")
|
||||
alias<FirAnnotation>("AnnotationCallChecker")
|
||||
alias<FirAnnotation>("AnnotationChecker")
|
||||
alias<FirAnnotationCall>("AnnotationCallChecker")
|
||||
alias<FirCheckNotNullCall>("CheckNotNullCallChecker")
|
||||
alias<FirElvisExpression>("ElvisExpressionChecker")
|
||||
alias<FirGetClassCall>("GetClassCallChecker")
|
||||
|
||||
+2
-2
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.analysis.jvm.checkers
|
||||
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirFunctionCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirQualifiedAccessExpressionChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.jvm.checkers.expression.*
|
||||
@@ -23,7 +23,7 @@ object JvmExpressionCheckers : ExpressionCheckers() {
|
||||
FirSuperCallWithDefaultsChecker,
|
||||
)
|
||||
|
||||
override val annotationCallCheckers: Set<FirAnnotationCallChecker>
|
||||
override val annotationCheckers: Set<FirAnnotationChecker>
|
||||
get() = setOf(
|
||||
FirDeprecatedJavaAnnotationsChecker,
|
||||
FirJvmPackageNameAnnotationsChecker,
|
||||
|
||||
+4
-2
@@ -34,8 +34,10 @@ import org.jetbrains.kotlin.fir.resolve.toFirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.classId
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.load.java.JvmAbi.JVM_FIELD_ANNOTATION_CLASS_ID
|
||||
import org.jetbrains.kotlin.name.JvmNames.JVM_MULTIFILE_CLASS_ID
|
||||
|
||||
object FirJvmFieldApplicabilityChecker : FirPropertyChecker() {
|
||||
override fun check(declaration: FirProperty, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
@@ -130,7 +132,7 @@ object FirJvmFieldApplicabilityChecker : FirPropertyChecker() {
|
||||
|
||||
private fun isInsideJvmMultifileClassFile(context: CheckerContext): Boolean {
|
||||
return context.findClosest<FirFile>()?.annotations?.any {
|
||||
(it.calleeReference as? FirResolvedNamedReference)?.name?.asString() == JVM_MULTIFILE_CLASS_SHORT
|
||||
it.annotationTypeRef.coneType.classId == JVM_MULTIFILE_CLASS_ID
|
||||
} == true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,8 +17,8 @@ import org.jetbrains.kotlin.fir.declarations.utils.isOpen
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isOverride
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.resolve.getContainingClass
|
||||
import org.jetbrains.kotlin.fir.types.classId
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
@@ -62,7 +62,7 @@ object FirJvmNameChecker : FirBasicDeclarationChecker() {
|
||||
|
||||
private fun FirAnnotatedDeclaration.findJvmNameAnnotation(): FirAnnotation? {
|
||||
return annotations.firstOrNull {
|
||||
it.calleeReference.safeAs<FirResolvedNamedReference>()?.name == StandardClassIds.JvmName.shortClassName
|
||||
it.annotationTypeRef.coneType.classId == StandardClassIds.JvmName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -25,6 +25,8 @@ import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.types.classId
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
@@ -244,7 +246,7 @@ object FirJvmStaticChecker : FirAnnotatedDeclarationChecker() {
|
||||
|
||||
private fun FirAnnotatedDeclaration.findAnnotation(classId: ClassId): FirAnnotation? {
|
||||
return annotations.firstOrNull {
|
||||
it.calleeReference.safeAs<FirResolvedNamedReference>()?.name == classId.shortClassName
|
||||
it.annotationTypeRef.coneType.classId == classId
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.analysis.jvm.checkers.expression
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.fir.FirRealSourceElementKind
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.load.java.JvmAnnotationNames
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
|
||||
object FirDeprecatedJavaAnnotationsChecker : FirAnnotationCallChecker() {
|
||||
object FirDeprecatedJavaAnnotationsChecker : FirAnnotationChecker() {
|
||||
|
||||
private val javaToKotlinNameMap: Map<ClassId, FqName> =
|
||||
mapOf(
|
||||
|
||||
+6
-3
@@ -6,7 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.analysis.jvm.checkers.expression
|
||||
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationCallChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationChecker
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.jvm.FirJvmErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||
@@ -16,9 +16,12 @@ import org.jetbrains.kotlin.fir.declarations.getStringArgument
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.name.*
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.isValidJavaFqName
|
||||
|
||||
object FirJvmPackageNameAnnotationsChecker : FirAnnotationCallChecker() {
|
||||
object FirJvmPackageNameAnnotationsChecker : FirAnnotationChecker() {
|
||||
|
||||
private val jvmPackageNameClassId = ClassId.topLevel(FqName("kotlin.jvm.JvmPackageName"))
|
||||
private val stringParameterName = Name.identifier("name")
|
||||
|
||||
+4
@@ -39,6 +39,8 @@ class ComposedExpressionCheckers : ExpressionCheckers() {
|
||||
get() = _returnExpressionCheckers
|
||||
override val blockCheckers: Set<FirBlockChecker>
|
||||
get() = _blockCheckers
|
||||
override val annotationCheckers: Set<FirAnnotationChecker>
|
||||
get() = _annotationCheckers
|
||||
override val annotationCallCheckers: Set<FirAnnotationCallChecker>
|
||||
get() = _annotationCallCheckers
|
||||
override val checkNotNullCallCheckers: Set<FirCheckNotNullCallChecker>
|
||||
@@ -85,6 +87,7 @@ class ComposedExpressionCheckers : ExpressionCheckers() {
|
||||
private val _logicExpressionCheckers: MutableSet<FirLogicExpressionChecker> = mutableSetOf()
|
||||
private val _returnExpressionCheckers: MutableSet<FirReturnExpressionChecker> = mutableSetOf()
|
||||
private val _blockCheckers: MutableSet<FirBlockChecker> = mutableSetOf()
|
||||
private val _annotationCheckers: MutableSet<FirAnnotationChecker> = mutableSetOf()
|
||||
private val _annotationCallCheckers: MutableSet<FirAnnotationCallChecker> = mutableSetOf()
|
||||
private val _checkNotNullCallCheckers: MutableSet<FirCheckNotNullCallChecker> = mutableSetOf()
|
||||
private val _elvisExpressionCheckers: MutableSet<FirElvisExpressionChecker> = mutableSetOf()
|
||||
@@ -117,6 +120,7 @@ class ComposedExpressionCheckers : ExpressionCheckers() {
|
||||
_logicExpressionCheckers += checkers.logicExpressionCheckers
|
||||
_returnExpressionCheckers += checkers.returnExpressionCheckers
|
||||
_blockCheckers += checkers.blockCheckers
|
||||
_annotationCheckers += checkers.annotationCheckers
|
||||
_annotationCallCheckers += checkers.annotationCallCheckers
|
||||
_checkNotNullCallCheckers += checkers.checkNotNullCallCheckers
|
||||
_elvisExpressionCheckers += checkers.elvisExpressionCheckers
|
||||
|
||||
+3
-1
@@ -30,6 +30,7 @@ abstract class ExpressionCheckers {
|
||||
open val logicExpressionCheckers: Set<FirLogicExpressionChecker> = emptySet()
|
||||
open val returnExpressionCheckers: Set<FirReturnExpressionChecker> = emptySet()
|
||||
open val blockCheckers: Set<FirBlockChecker> = emptySet()
|
||||
open val annotationCheckers: Set<FirAnnotationChecker> = emptySet()
|
||||
open val annotationCallCheckers: Set<FirAnnotationCallChecker> = emptySet()
|
||||
open val checkNotNullCallCheckers: Set<FirCheckNotNullCallChecker> = emptySet()
|
||||
open val elvisExpressionCheckers: Set<FirElvisExpressionChecker> = emptySet()
|
||||
@@ -60,7 +61,8 @@ abstract class ExpressionCheckers {
|
||||
@CheckersComponentInternal internal val allLogicExpressionCheckers: Set<FirLogicExpressionChecker> by lazy { logicExpressionCheckers + basicExpressionCheckers }
|
||||
@CheckersComponentInternal internal val allReturnExpressionCheckers: Set<FirReturnExpressionChecker> by lazy { returnExpressionCheckers + basicExpressionCheckers }
|
||||
@CheckersComponentInternal internal val allBlockCheckers: Set<FirBlockChecker> by lazy { blockCheckers + basicExpressionCheckers }
|
||||
@CheckersComponentInternal internal val allAnnotationCallCheckers: Set<FirAnnotationCallChecker> by lazy { annotationCallCheckers + basicExpressionCheckers + callCheckers }
|
||||
@CheckersComponentInternal internal val allAnnotationCheckers: Set<FirAnnotationChecker> by lazy { annotationCheckers + basicExpressionCheckers }
|
||||
@CheckersComponentInternal internal val allAnnotationCallCheckers: Set<FirAnnotationCallChecker> by lazy { annotationCallCheckers + annotationCheckers + basicExpressionCheckers + callCheckers }
|
||||
@CheckersComponentInternal internal val allCheckNotNullCallCheckers: Set<FirCheckNotNullCallChecker> by lazy { checkNotNullCallCheckers + basicExpressionCheckers + callCheckers }
|
||||
@CheckersComponentInternal internal val allElvisExpressionCheckers: Set<FirElvisExpressionChecker> by lazy { elvisExpressionCheckers + basicExpressionCheckers }
|
||||
@CheckersComponentInternal internal val allGetClassCallCheckers: Set<FirGetClassCallChecker> by lazy { getClassCallCheckers + basicExpressionCheckers + callCheckers }
|
||||
|
||||
+3
-1
@@ -11,6 +11,7 @@ package org.jetbrains.kotlin.fir.analysis.checkers.expression
|
||||
*/
|
||||
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArrayOfCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBinaryLogicExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
@@ -53,7 +54,8 @@ typealias FirLoopJumpChecker = FirExpressionChecker<FirLoopJump>
|
||||
typealias FirLogicExpressionChecker = FirExpressionChecker<FirBinaryLogicExpression>
|
||||
typealias FirReturnExpressionChecker = FirExpressionChecker<FirReturnExpression>
|
||||
typealias FirBlockChecker = FirExpressionChecker<FirBlock>
|
||||
typealias FirAnnotationCallChecker = FirExpressionChecker<FirAnnotation>
|
||||
typealias FirAnnotationChecker = FirExpressionChecker<FirAnnotation>
|
||||
typealias FirAnnotationCallChecker = FirExpressionChecker<FirAnnotationCall>
|
||||
typealias FirCheckNotNullCallChecker = FirExpressionChecker<FirCheckNotNullCall>
|
||||
typealias FirElvisExpressionChecker = FirExpressionChecker<FirElvisExpression>
|
||||
typealias FirGetClassCallChecker = FirExpressionChecker<FirGetClassCall>
|
||||
|
||||
-1
@@ -81,7 +81,6 @@ fun FirRegularClass.getAllowedAnnotationTargets(): Set<KotlinTarget> {
|
||||
|
||||
fun FirClassLikeSymbol<*>.getAllowedAnnotationTargets(): Set<KotlinTarget> {
|
||||
val targetAnnotation = getTargetAnnotation() ?: return defaultAnnotationTargets
|
||||
if (targetAnnotation.argumentList.arguments.isEmpty()) return emptySet()
|
||||
val arguments = targetAnnotation.findArgumentByName(TARGET_PARAMETER_NAME)?.unfoldArrayOrVararg().orEmpty()
|
||||
|
||||
return arguments.mapNotNullTo(mutableSetOf()) { argument ->
|
||||
|
||||
+4
-2
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.resolve.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
@@ -20,6 +19,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
|
||||
@@ -41,6 +41,8 @@ private data class FirSinceKotlinValue(
|
||||
val wasExperimentalMarkerClasses: List<FirRegularClassSymbol>
|
||||
)
|
||||
|
||||
private val SINCE_KOTLIN_VERSION_NAME = Name.identifier("version")
|
||||
|
||||
fun FirAnnotatedDeclaration.checkSinceKotlinVersionAccessibility(context: CheckerContext): FirSinceKotlinAccessibility {
|
||||
val value = getOwnSinceKotlinVersion(context.session)
|
||||
val version = value?.apiVersion
|
||||
@@ -65,7 +67,7 @@ private fun FirAnnotatedDeclaration.getOwnSinceKotlinVersion(session: FirSession
|
||||
|
||||
// TODO: use-site targeted annotations
|
||||
fun FirAnnotatedDeclaration.consider() {
|
||||
val sinceKotlinSingleArgument = getAnnotationByClassId(StandardClassIds.SinceKotlin)?.arguments?.singleOrNull()
|
||||
val sinceKotlinSingleArgument = getAnnotationByClassId(StandardClassIds.SinceKotlin)?.findArgumentByName(SINCE_KOTLIN_VERSION_NAME)
|
||||
val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String)?.let(ApiVersion.Companion::parse)
|
||||
if (apiVersion != null) {
|
||||
// TODO: combine wasExperimentalMarkerClasses in case of several associated declarations with the same maximal API version
|
||||
|
||||
+3
-3
@@ -194,9 +194,9 @@ object FirAnnotationChecker : FirAnnotatedDeclarationChecker() {
|
||||
if (deprecated == null) {
|
||||
reporter.reportOn(deprecatedSinceKotlin.source, FirErrors.DEPRECATED_SINCE_KOTLIN_WITHOUT_DEPRECATED, context)
|
||||
} else {
|
||||
val argumentMapping = deprecated.argumentMapping ?: return
|
||||
for (value in argumentMapping.values) {
|
||||
if (value.name.identifier == "level") {
|
||||
val argumentMapping = deprecated.argumentMapping.mapping
|
||||
for (name in argumentMapping.keys) {
|
||||
if (name.identifier == "level") {
|
||||
reporter.reportOn(
|
||||
deprecatedSinceKotlin.source,
|
||||
FirErrors.DEPRECATED_SINCE_KOTLIN_WITH_DEPRECATED_LEVEL,
|
||||
|
||||
+7
-8
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactory0
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.declarations.findArgumentByName
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||
@@ -34,10 +33,10 @@ object FirAnnotationArgumentChecker : FirAnnotationCallChecker() {
|
||||
sinceKotlinFqName,
|
||||
)
|
||||
|
||||
override fun check(expression: FirAnnotation, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
val argumentMapping = expression.argumentMapping ?: return
|
||||
override fun check(expression: FirAnnotationCall, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
val argumentMapping = expression.argumentMapping.mapping
|
||||
val fqName = expression.fqName(context.session)
|
||||
for ((arg, _) in argumentMapping) {
|
||||
for (arg in argumentMapping.values) {
|
||||
val argExpression = (arg as? FirNamedArgumentExpression)?.expression ?: arg
|
||||
checkAnnotationArgumentWithSubElements(argExpression, context.session, reporter, context)
|
||||
?.let { reporter.reportOn(argExpression.source, it, context) }
|
||||
@@ -148,7 +147,7 @@ object FirAnnotationArgumentChecker : FirAnnotationCallChecker() {
|
||||
private fun checkDeprecatedSinceKotlin(
|
||||
source: FirSourceElement?,
|
||||
fqName: FqName?,
|
||||
argumentMapping: LinkedHashMap<FirExpression, FirValueParameter>,
|
||||
argumentMapping: Map<Name, FirExpression>,
|
||||
context: CheckerContext,
|
||||
reporter: DiagnosticReporter
|
||||
) {
|
||||
@@ -162,10 +161,10 @@ object FirAnnotationArgumentChecker : FirAnnotationCallChecker() {
|
||||
var warningSince: ApiVersion? = null
|
||||
var errorSince: ApiVersion? = null
|
||||
var hiddenSince: ApiVersion? = null
|
||||
for (argument in argumentMapping) {
|
||||
val identifier = argument.value.name.identifier
|
||||
for ((name, argument) in argumentMapping) {
|
||||
val identifier = name.identifier
|
||||
if (identifier == "warningSince" || identifier == "errorSince" || identifier == "hiddenSince") {
|
||||
val version = parseVersionExpressionOrReport(argument.key, context, reporter)
|
||||
val version = parseVersionExpressionOrReport(argument, context, reporter)
|
||||
if (version != null) {
|
||||
when (identifier) {
|
||||
"warningSince" -> warningSince = version
|
||||
|
||||
+3
-2
@@ -14,14 +14,15 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.declarations.findArgumentByName
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.languageVersionSettings
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.resolve.checkers.OptInNames
|
||||
|
||||
object FirOptInAnnotationCallChecker : FirAnnotationCallChecker() {
|
||||
override fun check(expression: FirAnnotation, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
override fun check(expression: FirAnnotationCall, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
val lookupTag = expression.annotationTypeRef.coneTypeSafe<ConeClassLikeType>()?.lookupTag ?: return
|
||||
val classId = lookupTag.classId
|
||||
val isMarker = classId == OptInNames.REQUIRES_OPT_IN_CLASS_ID
|
||||
|
||||
+7
-2
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isLocal
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
@@ -253,8 +254,12 @@ object UnusedChecker : FirControlFlowChecker() {
|
||||
dataForNode: PathAwareVariableStatusInfo,
|
||||
annotation: FirAnnotation,
|
||||
): PathAwareVariableStatusInfo {
|
||||
val qualifiedAccesses = annotation.argumentList.arguments.mapNotNull { it as? FirQualifiedAccess }.toTypedArray()
|
||||
return visitQualifiedAccesses(dataForNode, *qualifiedAccesses)
|
||||
return if (annotation is FirAnnotationCall) {
|
||||
val qualifiedAccesses = annotation.argumentList.arguments.mapNotNull { it as? FirQualifiedAccess }.toTypedArray()
|
||||
visitQualifiedAccesses(dataForNode, *qualifiedAccesses)
|
||||
} else {
|
||||
dataForNode
|
||||
}
|
||||
}
|
||||
|
||||
private fun visitQualifiedAccesses(
|
||||
|
||||
+8
-5
@@ -10,13 +10,14 @@ import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.analysis.collectors.components.AbstractDiagnosticCollectorComponent
|
||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.findArgumentByName
|
||||
import org.jetbrains.kotlin.fir.declarations.unwrapVarargValue
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.SessionHolder
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
|
||||
abstract class AbstractDiagnosticCollector(
|
||||
@@ -37,6 +38,8 @@ abstract class AbstractDiagnosticCollector(
|
||||
const val SUPPRESS_ALL_WARNINGS = "warnings"
|
||||
const val SUPPRESS_ALL_ERRORS = "errors"
|
||||
|
||||
private val SUPPRESS_NAMES_NAME = Name.identifier("names")
|
||||
|
||||
fun getDiagnosticsSuppressedForContainer(annotationContainer: FirAnnotationContainer): List<String>? {
|
||||
val annotations = annotationContainer.annotations.filter {
|
||||
val type = it.annotationTypeRef.coneType as? ConeClassLikeType ?: return@filter false
|
||||
@@ -44,9 +47,9 @@ abstract class AbstractDiagnosticCollector(
|
||||
}
|
||||
if (annotations.isEmpty()) return null
|
||||
return annotations.flatMap { annotationCall ->
|
||||
annotationCall.arguments.filterIsInstance<FirVarargArgumentsExpression>().flatMap { varargArgument ->
|
||||
varargArgument.arguments.mapNotNull { (it as? FirConstExpression<*>)?.value as? String? }
|
||||
}
|
||||
annotationCall.findArgumentByName(SUPPRESS_NAMES_NAME)?.unwrapVarargValue()?.mapNotNull {
|
||||
(it as? FirConstExpression<*>)?.value as? String?
|
||||
} ?: emptyList()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -204,8 +204,8 @@ abstract class AbstractDiagnosticCollectorVisitor(
|
||||
visitWithQualifiedAccessOrAnnotationCall(propertyAccessExpression)
|
||||
}
|
||||
|
||||
override fun visitAnnotation(annotation: FirAnnotation, data: Nothing?) {
|
||||
visitWithQualifiedAccessOrAnnotationCall(annotation)
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Nothing?) {
|
||||
visitWithQualifiedAccessOrAnnotationCall(annotationCall)
|
||||
}
|
||||
|
||||
override fun visitVariableAssignment(variableAssignment: FirVariableAssignment, data: Nothing?) {
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ class ErrorNodeDiagnosticCollectorComponent(
|
||||
// Use the source of the enclosing FirQualifiedAccess if it is exactly the call to the erroneous callee.
|
||||
when (it) {
|
||||
is FirQualifiedAccess -> it.calleeReference == errorNamedReference
|
||||
is FirAnnotation -> it.calleeReference == errorNamedReference
|
||||
is FirAnnotationCall -> it.calleeReference == errorNamedReference
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -29,7 +29,11 @@ class ExpressionCheckersDiagnosticComponent(
|
||||
}
|
||||
|
||||
override fun visitAnnotation(annotation: FirAnnotation, data: CheckerContext) {
|
||||
checkers.allAnnotationCallCheckers.check(annotation, data, reporter)
|
||||
checkers.allAnnotationCheckers.check(annotation, data, reporter)
|
||||
}
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: CheckerContext) {
|
||||
checkers.allAnnotationCallCheckers.check(annotationCall, data, reporter)
|
||||
}
|
||||
|
||||
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: CheckerContext) {
|
||||
|
||||
+7
-13
@@ -6,12 +6,14 @@
|
||||
package org.jetbrains.kotlin.fir.serialization
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.ConstantValue
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.toConstantValue
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@@ -30,16 +32,8 @@ class FirAnnotationSerializer(private val session: FirSession, internal val stri
|
||||
addArgument(argument)
|
||||
}
|
||||
|
||||
val argumentList = annotation.argumentList
|
||||
if (argumentList is FirResolvedArgumentList) {
|
||||
for ((argumentExpression, parameter) in argumentList.mapping) {
|
||||
addArgument(argumentExpression, parameter.name)
|
||||
}
|
||||
} else {
|
||||
for (argumentExpression in argumentList.arguments) {
|
||||
if (argumentExpression !is FirNamedArgumentExpression) continue
|
||||
addArgument(argumentExpression, argumentExpression.name)
|
||||
}
|
||||
for ((name, argument) in annotation.argumentMapping.mapping) {
|
||||
addArgument(argument, name)
|
||||
}
|
||||
}.build()
|
||||
|
||||
|
||||
+6
-7
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyAnnotationArgumentMapping
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirReferencePlaceholderForResolvedAnnotations
|
||||
import org.jetbrains.kotlin.fir.resolve.*
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.varargElementType
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.isSuspendFunctionType
|
||||
@@ -851,9 +850,9 @@ class FirElementSerializer private constructor(
|
||||
writeVersionRequirement(LanguageFeature.ReleaseCoroutines)
|
||||
|
||||
private fun serializeVersionRequirementFromRequireKotlin(annotation: FirAnnotation): ProtoBuf.VersionRequirement.Builder? {
|
||||
val args = annotation.argumentList
|
||||
val argumentMapping = annotation.argumentMapping.mapping
|
||||
|
||||
val versionString = (args[RequireKotlinConstants.VERSION]?.toConstantValue() as? StringValue)?.value ?: return null
|
||||
val versionString = (argumentMapping[RequireKotlinConstants.VERSION]?.toConstantValue() as? StringValue)?.value ?: return null
|
||||
val matchResult = RequireKotlinConstants.VERSION_REGEX.matchEntire(versionString) ?: return null
|
||||
|
||||
val major = matchResult.groupValues.getOrNull(1)?.toIntOrNull() ?: return null
|
||||
@@ -866,12 +865,12 @@ class FirElementSerializer private constructor(
|
||||
writeVersionFull = { proto.versionFull = it }
|
||||
)
|
||||
|
||||
val message = (args[RequireKotlinConstants.MESSAGE]?.toConstantValue() as? StringValue)?.value
|
||||
val message = (argumentMapping[RequireKotlinConstants.MESSAGE]?.toConstantValue() as? StringValue)?.value
|
||||
if (message != null) {
|
||||
proto.message = stringTable.getStringIndex(message)
|
||||
}
|
||||
|
||||
when ((args[RequireKotlinConstants.LEVEL]?.toConstantValue() as? EnumValue)?.enumEntryName?.asString()) {
|
||||
when ((argumentMapping[RequireKotlinConstants.LEVEL]?.toConstantValue() as? EnumValue)?.enumEntryName?.asString()) {
|
||||
DeprecationLevel.ERROR.name -> {
|
||||
// ERROR is the default level
|
||||
}
|
||||
@@ -879,7 +878,7 @@ class FirElementSerializer private constructor(
|
||||
DeprecationLevel.HIDDEN.name -> proto.level = ProtoBuf.VersionRequirement.Level.HIDDEN
|
||||
}
|
||||
|
||||
when ((args[RequireKotlinConstants.VERSION_KIND]?.toConstantValue() as? EnumValue)?.enumEntryName?.asString()) {
|
||||
when ((argumentMapping[RequireKotlinConstants.VERSION_KIND]?.toConstantValue() as? EnumValue)?.enumEntryName?.asString()) {
|
||||
ProtoBuf.VersionRequirement.VersionKind.LANGUAGE_VERSION.name -> {
|
||||
// LANGUAGE_VERSION is the default kind
|
||||
}
|
||||
@@ -889,7 +888,7 @@ class FirElementSerializer private constructor(
|
||||
proto.versionKind = ProtoBuf.VersionRequirement.VersionKind.API_VERSION
|
||||
}
|
||||
|
||||
val errorCode = (args[RequireKotlinConstants.ERROR_CODE]?.toConstantValue() as? IntValue)?.value
|
||||
val errorCode = (argumentMapping[RequireKotlinConstants.ERROR_CODE]?.toConstantValue() as? IntValue)?.value
|
||||
if (errorCode != null && errorCode != -1) {
|
||||
proto.errorCode = errorCode
|
||||
}
|
||||
|
||||
+8
-1
@@ -9,7 +9,10 @@ import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.render
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.classId
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeUnsafe
|
||||
import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor
|
||||
import org.jetbrains.kotlin.types.ConstantValueKind
|
||||
|
||||
@@ -62,6 +65,10 @@ internal object FirToConstantValueTransformer : FirDefaultVisitor<ConstantValue<
|
||||
return AnnotationValue(annotation)
|
||||
}
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Nothing?): ConstantValue<*> {
|
||||
return visitAnnotation(annotationCall, data)
|
||||
}
|
||||
|
||||
override fun visitGetClassCall(
|
||||
getClassCall: FirGetClassCall,
|
||||
data: Nothing?
|
||||
|
||||
@@ -40,6 +40,8 @@ class Fir2IrImplicitCastInserter(
|
||||
|
||||
override fun visitAnnotation(annotation: FirAnnotation, data: IrElement): IrElement = data
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: IrElement): IrElement = data
|
||||
|
||||
override fun visitAnonymousObjectExpression(anonymousObjectExpression: FirAnonymousObjectExpression, data: IrElement): IrElement = data
|
||||
|
||||
override fun visitAnonymousFunctionExpression(anonymousFunctionExpression: FirAnonymousFunctionExpression, data: IrElement): IrElement {
|
||||
|
||||
@@ -376,6 +376,10 @@ class Fir2IrVisitor(
|
||||
return callGenerator.convertToIrConstructorCall(annotation)
|
||||
}
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Any?): IrElement {
|
||||
return callGenerator.convertToIrConstructorCall(annotationCall)
|
||||
}
|
||||
|
||||
override fun visitQualifiedAccessExpression(qualifiedAccessExpression: FirQualifiedAccessExpression, data: Any?): IrElement {
|
||||
val explicitReceiverExpression = convertToIrReceiverExpression(
|
||||
qualifiedAccessExpression.explicitReceiver, qualifiedAccessExpression.calleeReference
|
||||
|
||||
+25
-2
@@ -11,11 +11,13 @@ import org.jetbrains.kotlin.fir.backend.*
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isCompanion
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirDelegateFieldReference
|
||||
import org.jetbrains.kotlin.fir.references.FirReference
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.FirSuperReference
|
||||
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.impl.FirReferencePlaceholderForResolvedAnnotations
|
||||
import org.jetbrains.kotlin.fir.resolve.FirSamResolverImpl
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.getExpectedTypeForSAMConversion
|
||||
@@ -45,6 +47,7 @@ import org.jetbrains.kotlin.ir.util.render
|
||||
import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects
|
||||
import org.jetbrains.kotlin.psi2ir.generators.isUnchanging
|
||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
|
||||
class CallAndReferenceGenerator(
|
||||
private val components: Fir2IrComponents,
|
||||
@@ -423,7 +426,27 @@ class CallAndReferenceGenerator(
|
||||
)
|
||||
}
|
||||
}
|
||||
}.applyCallArguments(annotation, annotationMode = true)
|
||||
}.applyCallArguments(annotation.toAnnotationCall(), annotationMode = true)
|
||||
}
|
||||
|
||||
private fun FirAnnotation.toAnnotationCall(): FirAnnotationCall? {
|
||||
if (this is FirAnnotationCall) return this
|
||||
return buildAnnotationCall {
|
||||
useSiteTarget = this@toAnnotationCall.useSiteTarget
|
||||
annotationTypeRef = this@toAnnotationCall.annotationTypeRef
|
||||
val symbol = annotationTypeRef.coneType.toSymbol(session) as? FirRegularClassSymbol ?: return null
|
||||
val constructorSymbol = symbol.declarationSymbols.firstIsInstanceOrNull<FirConstructorSymbol>() ?: return null
|
||||
val argumentToParameterToMapping = constructorSymbol.valueParameterSymbols.mapNotNull {
|
||||
val parameter = it.fir
|
||||
val argument = this@toAnnotationCall.argumentMapping.mapping[parameter.name] ?: return@mapNotNull null
|
||||
argument to parameter
|
||||
}.toMap(LinkedHashMap())
|
||||
argumentList = buildResolvedArgumentList(argumentToParameterToMapping)
|
||||
calleeReference = buildResolvedNamedReference {
|
||||
name = symbol.classId.shortClassName
|
||||
resolvedSymbol = constructorSymbol
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal fun convertToGetObject(qualifier: FirResolvedQualifier): IrExpression {
|
||||
@@ -487,7 +510,7 @@ class CallAndReferenceGenerator(
|
||||
val calleeReference = when (call) {
|
||||
is FirFunctionCall -> call.calleeReference
|
||||
is FirDelegatedConstructorCall -> call.calleeReference
|
||||
is FirAnnotation -> call.calleeReference
|
||||
is FirAnnotationCall -> call.calleeReference
|
||||
else -> null
|
||||
}
|
||||
val function = if (calleeReference == FirReferencePlaceholderForResolvedAnnotations) {
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.types.ConstantValueKind
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import java.lang.Deprecated
|
||||
import java.lang.annotation.Documented
|
||||
import java.lang.annotation.Retention
|
||||
@@ -113,6 +114,14 @@ private fun List<JavaAnnotationArgument>.mapJavaTargetArguments(session: FirSess
|
||||
}
|
||||
val classId = ClassId.topLevel(StandardNames.FqNames.annotationTarget)
|
||||
resultSet.mapTo(arguments) { buildEnumCall(session, classId, Name.identifier(it.name)) }
|
||||
varargElementType = buildResolvedTypeRef {
|
||||
type = ConeClassLikeTypeImpl(
|
||||
ConeClassLikeLookupTagImpl(classId),
|
||||
emptyArray(),
|
||||
isNullable = false,
|
||||
ConeAttributes.Empty
|
||||
).createOutArrayType()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,15 +143,15 @@ private fun fillAnnotationArgumentMapping(
|
||||
annotationArguments: Collection<JavaAnnotationArgument>,
|
||||
destination: MutableMap<Name, FirExpression>
|
||||
) {
|
||||
if (annotationArguments.none { it.name != null }) return
|
||||
val annotationClassSymbol = session.symbolProvider.getClassLikeSymbolByClassId(lookupTag.classId).also {
|
||||
lookupTag.bindSymbolToLookupTag(session, it)
|
||||
} ?: return
|
||||
val annotationConstructor =
|
||||
(annotationClassSymbol.fir as FirRegularClass).declarations.filterIsInstance<FirConstructor>().first()
|
||||
}
|
||||
val annotationConstructor = (annotationClassSymbol?.fir as FirRegularClass?)
|
||||
?.declarations
|
||||
?.firstIsInstanceOrNull<FirConstructor>()
|
||||
annotationArguments.associateTo(destination) { argument ->
|
||||
val name = argument.name ?: JavaSymbolProvider.VALUE_METHOD_NAME
|
||||
val parameter = annotationConstructor.valueParameters.find { it.name == name }
|
||||
val parameter = annotationConstructor?.valueParameters?.find { it.name == name }
|
||||
name to argument.toFirExpression(session, javaTypeParameterStack, parameter?.returnTypeRef)
|
||||
}
|
||||
}
|
||||
@@ -205,7 +214,6 @@ private fun JavaAnnotation.toFirAnnotationCall(
|
||||
"Deprecated in Java"
|
||||
).setProperType(session)
|
||||
}
|
||||
null -> {}
|
||||
else -> {
|
||||
fillAnnotationArgumentMapping(session, javaTypeParameterStack, lookupTag!!, arguments, mapping)
|
||||
}
|
||||
|
||||
+2
-1
@@ -37,7 +37,7 @@ class FirAnnotationTypeQualifierResolver(
|
||||
get() = coneClassLikeType?.lookupTag?.classId?.asSingleFqName()
|
||||
|
||||
override fun FirAnnotation.enumArguments(onlyValue: Boolean): Iterable<String> =
|
||||
arguments.flatMap { argument ->
|
||||
argumentMapping.mapping.values.flatMap { argument ->
|
||||
if (!onlyValue || argument !is FirNamedArgumentExpression || argument.name == DEFAULT_ANNOTATION_MEMBER_NAME)
|
||||
argument.toEnumNames()
|
||||
else
|
||||
@@ -47,6 +47,7 @@ class FirAnnotationTypeQualifierResolver(
|
||||
private fun FirExpression.toEnumNames(): List<String> =
|
||||
when (this) {
|
||||
is FirArrayOfCall -> arguments.flatMap { it.toEnumNames() }
|
||||
is FirVarargArgumentsExpression -> arguments.flatMap { it.toEnumNames() }
|
||||
else -> listOfNotNull(toResolvedCallableSymbol()?.callableId?.callableName?.asString())
|
||||
}
|
||||
|
||||
|
||||
@@ -489,7 +489,7 @@ class FirCallResolver(
|
||||
}
|
||||
}
|
||||
|
||||
fun resolveAnnotationCall(annotation: FirAnnotation): FirAnnotation? {
|
||||
fun resolveAnnotationCall(annotation: FirAnnotationCall): FirAnnotationCall? {
|
||||
val reference = annotation.calleeReference as? FirSimpleNamedReference ?: return null
|
||||
annotation.argumentList.transformArguments(transformer, ResolutionMode.ContextDependent)
|
||||
|
||||
|
||||
+33
-8
@@ -9,12 +9,14 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
|
||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.coneTypeSafe
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -26,6 +28,9 @@ private val RETENTION_CLASS_ID = ClassId.fromString("kotlin/annotation/Retention
|
||||
private val TARGET_CLASS_ID = ClassId.fromString("kotlin/annotation/Target")
|
||||
private val JVM_FIELD_CLASS_ID = ClassId.fromString("kotlin/jvm/JvmField")
|
||||
|
||||
private val RETENTION_VALUE_NAME = Name.identifier("value")
|
||||
private val TARGET_ALLOWED_TARGET_NAME = Name.identifier("allowedTargets")
|
||||
|
||||
private fun FirAnnotation.toAnnotationLookupTag(): ConeClassLikeLookupTag? =
|
||||
// this cast fails when we have generic-typed annotations @T
|
||||
(annotationTypeRef.coneType as? ConeClassLikeType)?.lookupTag
|
||||
@@ -49,7 +54,7 @@ fun FirAnnotationContainer.nonSourceAnnotations(session: FirSession): List<FirAn
|
||||
val firAnnotationClass = annotation.toAnnotationClass(session)
|
||||
firAnnotationClass != null && firAnnotationClass.annotations.none { meta ->
|
||||
meta.toAnnotationClassId() == RETENTION_CLASS_ID &&
|
||||
meta.argumentList.arguments.singleOrNull()?.callableNameOfMetaAnnotationArgument == Name.identifier("SOURCE")
|
||||
meta.findArgumentByName(RETENTION_VALUE_NAME)?.callableNameOfMetaAnnotationArgument == Name.identifier("SOURCE")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,9 +64,15 @@ inline val FirProperty.hasJvmFieldAnnotation: Boolean
|
||||
val FirAnnotation.isJvmFieldAnnotation: Boolean
|
||||
get() = toAnnotationClassId() == JVM_FIELD_CLASS_ID
|
||||
|
||||
fun FirAnnotation.useSiteTargetsFromMetaAnnotation(session: FirSession): Set<AnnotationUseSiteTarget> =
|
||||
toAnnotationClass(session)?.annotations?.find { it.toAnnotationClassId() == TARGET_CLASS_ID }?.argumentList?.arguments
|
||||
?.toAnnotationUseSiteTargets() ?: DEFAULT_USE_SITE_TARGETS
|
||||
fun FirAnnotation.useSiteTargetsFromMetaAnnotation(session: FirSession): Set<AnnotationUseSiteTarget> {
|
||||
return toAnnotationClass(session)
|
||||
?.annotations
|
||||
?.find { it.toAnnotationClassId() == TARGET_CLASS_ID }
|
||||
?.findArgumentByName(TARGET_ALLOWED_TARGET_NAME)
|
||||
?.unwrapVarargValue()
|
||||
?.toAnnotationUseSiteTargets()
|
||||
?: DEFAULT_USE_SITE_TARGETS
|
||||
}
|
||||
|
||||
private fun List<FirExpression>.toAnnotationUseSiteTargets(): Set<AnnotationUseSiteTarget> =
|
||||
flatMapTo(mutableSetOf()) { arg ->
|
||||
@@ -122,11 +133,18 @@ fun List<FirAnnotation>.getAnnotationsByFqName(fqName: FqName): List<FirAnnotati
|
||||
}
|
||||
}
|
||||
|
||||
fun FirAnnotation.findArgumentByName(name: Name): FirExpression? {
|
||||
val argumentMapping = argumentMapping
|
||||
if (argumentMapping != null) {
|
||||
return argumentMapping.keys.find { argumentMapping[it]?.name == name }?.unwrapArgument()
|
||||
fun FirExpression.unwrapVarargValue(): List<FirExpression> {
|
||||
return when (this) {
|
||||
is FirVarargArgumentsExpression -> arguments
|
||||
is FirArrayOfCall -> arguments
|
||||
else -> listOf(this)
|
||||
}
|
||||
}
|
||||
|
||||
fun FirAnnotation.findArgumentByName(name: Name): FirExpression? {
|
||||
argumentMapping.mapping[name]?.let { return it }
|
||||
if (this !is FirAnnotationCall) return null
|
||||
|
||||
// NB: we have to consider both cases, because deserializer does not create argument mapping
|
||||
for (argument in arguments) {
|
||||
if (argument is FirNamedArgumentExpression && argument.name == name) {
|
||||
@@ -152,3 +170,10 @@ fun FirAnnotationContainer.getJvmNameFromAnnotation(target: AnnotationUseSiteTar
|
||||
call.getStringArgument(name)?.takeIf { target == null || call.useSiteTarget == target }
|
||||
}
|
||||
}
|
||||
|
||||
val FirAnnotation.resolved: Boolean
|
||||
get() {
|
||||
if (annotationTypeRef !is FirResolvedTypeRef) return false
|
||||
if (this !is FirAnnotationCall) return true
|
||||
return calleeReference is FirResolvedNamedReference || calleeReference is FirErrorNamedReference
|
||||
}
|
||||
|
||||
+5
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationResolveStatus
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||
@@ -31,10 +31,13 @@ object FirGeneratedElementsValidator : FirDefaultVisitor<Unit, Any?>() {
|
||||
}
|
||||
|
||||
override fun visitAnnotation(annotation: FirAnnotation, data: Any?) {
|
||||
require(annotation.resolveStatus == FirAnnotationResolveStatus.Resolved)
|
||||
annotation.acceptChildren(this, null)
|
||||
}
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: Any?) {
|
||||
annotationCall.acceptChildren(this, null)
|
||||
}
|
||||
|
||||
override fun visitRegularClass(regularClass: FirRegularClass, data: Any?) {
|
||||
regularClass.acceptChildren(this, null)
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.config.ApiVersion
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||
import org.jetbrains.kotlin.fir.FirAnnotationContainer
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
@@ -20,6 +18,8 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationInfo
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue
|
||||
import org.jetbrains.kotlin.resolve.deprecation.SimpleDeprecationInfo
|
||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
@@ -98,12 +98,15 @@ private fun FirAnnotation.getVersionFromArgument(name: Name): ApiVersion? =
|
||||
|
||||
private fun FirAnnotation.getDeprecationLevel(): DeprecationLevelValue? {
|
||||
//take last because Annotation might be not resolved yet and arguments passed without explicit names
|
||||
val arg = findArgumentByName(LEVEL_NAME) ?: arguments.lastOrNull()
|
||||
return arg?.let { argument ->
|
||||
val targetExpression = argument as? FirQualifiedAccessExpression ?: return null
|
||||
val targetName = (targetExpression.calleeReference as? FirNamedReference)?.name?.asString() ?: return null
|
||||
DeprecationLevelValue.values().find { it.name == targetName }
|
||||
}
|
||||
val argument = if (resolved) {
|
||||
argumentMapping.mapping[LEVEL_NAME]
|
||||
} else {
|
||||
val call = this as? FirAnnotationCall ?: return null
|
||||
call.arguments.firstOrNull { it is FirNamedArgumentExpression && it.name == LEVEL_NAME }?.unwrapArgument() ?: arguments.lastOrNull()
|
||||
} ?: return null
|
||||
val targetExpression = argument as? FirQualifiedAccessExpression ?: return null
|
||||
val targetName = (targetExpression.calleeReference as? FirNamedReference)?.name?.asString() ?: return null
|
||||
return DeprecationLevelValue.values().find { it.name == targetName }
|
||||
}
|
||||
|
||||
private fun List<FirAnnotation>.extractDeprecationInfoPerUseSite(
|
||||
|
||||
+4
-4
@@ -1267,12 +1267,12 @@ abstract class FirDataFlowAnalyzer<FLOW : Flow>(
|
||||
|
||||
// ----------------------------------- Annotations -----------------------------------
|
||||
|
||||
fun enterAnnotationCall(annotation: FirAnnotation) {
|
||||
graphBuilder.enterAnnotationCall(annotation).mergeIncomingFlow()
|
||||
fun enterAnnotation(annotation: FirAnnotation) {
|
||||
graphBuilder.enterAnnotation(annotation).mergeIncomingFlow()
|
||||
}
|
||||
|
||||
fun exitAnnotationCall(annotation: FirAnnotation) {
|
||||
graphBuilder.exitAnnotationCall(annotation).mergeIncomingFlow()
|
||||
fun exitAnnotation(annotation: FirAnnotation) {
|
||||
graphBuilder.exitAnnotation(annotation).mergeIncomingFlow()
|
||||
}
|
||||
|
||||
// ----------------------------------- Init block -----------------------------------
|
||||
|
||||
+2
-2
@@ -1177,7 +1177,7 @@ class ControlFlowGraphBuilder {
|
||||
|
||||
// ----------------------------------- Annotations -----------------------------------
|
||||
|
||||
fun enterAnnotationCall(annotation: FirAnnotation): AnnotationEnterNode {
|
||||
fun enterAnnotation(annotation: FirAnnotation): AnnotationEnterNode {
|
||||
val graph = ControlFlowGraph(null, "STUB_GRAPH_FOR_ANNOTATION_CALL", ControlFlowGraph.Kind.AnnotationCall)
|
||||
pushGraph(graph, Mode.Body)
|
||||
return createAnnotationEnterNode(annotation).also {
|
||||
@@ -1185,7 +1185,7 @@ class ControlFlowGraphBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
fun exitAnnotationCall(annotation: FirAnnotation): AnnotationExitNode {
|
||||
fun exitAnnotation(annotation: FirAnnotation): AnnotationExitNode {
|
||||
val node = createAnnotationExitNode(annotation)
|
||||
popAndAddEdge(node)
|
||||
popGraph()
|
||||
|
||||
+8
-3
@@ -15,8 +15,13 @@ import org.jetbrains.kotlin.fir.resolve.calls.FirNamedReferenceWithCandidate
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.ResolutionContext
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.model.ConeFixVariableConstraintPosition
|
||||
import org.jetbrains.kotlin.fir.returnExpressions
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassErrorType
|
||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
import org.jetbrains.kotlin.fir.types.ConeTypeVariable
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintSystemCompletionContext
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintSystemCompletionMode
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.TypeVariableDependencyInformationProvider
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.components.TypeVariableDirectionCalculator
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.NotEnoughInformationForTypeParameter
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.model.VariableWithConstraints
|
||||
@@ -467,7 +472,7 @@ fun FirStatement.processAllContainingCallCandidates(processBlocks: Boolean, proc
|
||||
rhs.processAllContainingCallCandidates(processBlocks, processor)
|
||||
}
|
||||
|
||||
is FirAnnotation -> {
|
||||
is FirAnnotationCall -> {
|
||||
processCandidateIfApplicable(processor, processBlocks)
|
||||
arguments.forEach { it.processAllContainingCallCandidates(processBlocks, processor) }
|
||||
}
|
||||
|
||||
+10
-10
@@ -257,40 +257,40 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
return constructor.returnTypeRef.coneType.isArrayOrPrimitiveArray
|
||||
}
|
||||
|
||||
override fun transformAnnotation(
|
||||
annotation: FirAnnotation,
|
||||
override fun transformAnnotationCall(
|
||||
annotationCall: FirAnnotationCall,
|
||||
data: ExpectedArgumentType?
|
||||
): FirStatement {
|
||||
val calleeReference = annotation.calleeReference as? FirNamedReferenceWithCandidate
|
||||
?: return annotation
|
||||
annotation.transformCalleeReference(
|
||||
val calleeReference = annotationCall.calleeReference as? FirNamedReferenceWithCandidate
|
||||
?: return annotationCall
|
||||
annotationCall.transformCalleeReference(
|
||||
StoreCalleeReference,
|
||||
calleeReference.toResolvedReference(),
|
||||
)
|
||||
val subCandidate = calleeReference.candidate
|
||||
val expectedArgumentsTypeMapping = runIf(!calleeReference.isError) { subCandidate.createArgumentsMapping() }
|
||||
withFirArrayOfCallTransformer {
|
||||
annotation.argumentList.transformArguments(this, expectedArgumentsTypeMapping)
|
||||
annotationCall.argumentList.transformArguments(this, expectedArgumentsTypeMapping)
|
||||
var index = 0
|
||||
subCandidate.argumentMapping = subCandidate.argumentMapping?.let {
|
||||
LinkedHashMap<FirExpression, FirValueParameter>(it.size).let { newMapping ->
|
||||
subCandidate.argumentMapping?.mapKeysTo(newMapping) { (_, _) ->
|
||||
annotation.argumentList.arguments[index++]
|
||||
annotationCall.argumentList.arguments[index++]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (calleeReference.isError) {
|
||||
subCandidate.argumentMapping?.let {
|
||||
annotation.replaceArgumentList(buildArgumentListForErrorCall(annotation.argumentList, it))
|
||||
annotationCall.replaceArgumentList(buildArgumentListForErrorCall(annotationCall.argumentList, it))
|
||||
}
|
||||
} else {
|
||||
subCandidate.handleVarargs()
|
||||
subCandidate.argumentMapping?.let {
|
||||
annotation.replaceArgumentList(buildResolvedArgumentList(it, annotation.argumentList.source))
|
||||
annotationCall.replaceArgumentList(buildResolvedArgumentList(it, annotationCall.argumentList.source))
|
||||
}
|
||||
}
|
||||
return annotation
|
||||
return annotationCall
|
||||
}
|
||||
|
||||
private fun Candidate.handleVarargs() {
|
||||
|
||||
+5
-4
@@ -9,10 +9,7 @@ import kotlinx.collections.immutable.toImmutableList
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.isFromVararg
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirStatement
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeCyclicTypeBound
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
@@ -207,4 +204,8 @@ open class FirTypeResolveTransformer(
|
||||
annotation.transformAnnotationTypeRef(this, data)
|
||||
return annotation
|
||||
}
|
||||
|
||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: Any?): FirStatement {
|
||||
return transformAnnotation(annotationCall, data)
|
||||
}
|
||||
}
|
||||
|
||||
+8
-1
@@ -15,7 +15,10 @@ import org.jetbrains.kotlin.fir.resolve.ResolutionMode
|
||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||
import org.jetbrains.kotlin.fir.resolve.calls.ResolutionContext
|
||||
import org.jetbrains.kotlin.fir.resolve.dfa.DataFlowAnalyzerContext
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.*
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirProviderInterceptor
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.ScopeClassDeclaration
|
||||
import org.jetbrains.kotlin.fir.scopes.FirCompositeScope
|
||||
import org.jetbrains.kotlin.fir.scopes.impl.createCurrentScopeList
|
||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||
@@ -207,6 +210,10 @@ open class FirBodyResolveTransformer(
|
||||
return expressionsTransformer.transformAnnotation(annotation, data)
|
||||
}
|
||||
|
||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: ResolutionMode): FirStatement {
|
||||
return expressionsTransformer.transformAnnotationCall(annotationCall, data)
|
||||
}
|
||||
|
||||
override fun transformDelegatedConstructorCall(
|
||||
delegatedConstructorCall: FirDelegatedConstructorCall,
|
||||
data: ResolutionMode
|
||||
|
||||
+15
-14
@@ -16,6 +16,8 @@ import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildErrorExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildFunctionCall
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildVariableAssignment
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.toAnnotationArgumentMapping
|
||||
import org.jetbrains.kotlin.fir.references.*
|
||||
import org.jetbrains.kotlin.fir.references.builder.buildErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.builder.buildExplicitSuperReference
|
||||
@@ -893,24 +895,23 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform
|
||||
}
|
||||
|
||||
override fun transformAnnotation(annotation: FirAnnotation, data: ResolutionMode): FirStatement {
|
||||
if (annotation.resolveStatus == FirAnnotationResolveStatus.Resolved) return annotation
|
||||
return resolveAnnotationCall(annotation, FirAnnotationResolveStatus.Resolved)
|
||||
if (annotation.resolved) return annotation
|
||||
annotation.transformAnnotationTypeRef(transformer, ResolutionMode.ContextIndependent)
|
||||
return annotation
|
||||
}
|
||||
|
||||
protected fun resolveAnnotationCall(
|
||||
annotation: FirAnnotation,
|
||||
status: FirAnnotationResolveStatus
|
||||
): FirAnnotation {
|
||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: ResolutionMode): FirStatement {
|
||||
if (annotationCall.resolved) return annotationCall
|
||||
annotationCall.transformAnnotationTypeRef(transformer, ResolutionMode.ContextIndependent)
|
||||
return withFirArrayOfCallTransformer {
|
||||
annotation.transformAnnotationTypeRef(transformer, ResolutionMode.ContextIndependent)
|
||||
if (status == FirAnnotationResolveStatus.PartiallyResolved) return annotation
|
||||
dataFlowAnalyzer.enterAnnotationCall(annotation)
|
||||
val result = callResolver.resolveAnnotationCall(annotation)
|
||||
dataFlowAnalyzer.exitAnnotationCall(result ?: annotation)
|
||||
if (result == null) return annotation
|
||||
dataFlowAnalyzer.enterAnnotation(annotationCall)
|
||||
val result = callResolver.resolveAnnotationCall(annotationCall)
|
||||
dataFlowAnalyzer.exitAnnotation(result ?: annotationCall)
|
||||
if (result == null) return annotationCall
|
||||
callCompleter.completeCall(result, noExpectedType)
|
||||
result.replaceResolveStatus(status)
|
||||
annotation
|
||||
// TODO: FirBlackBoxCodegenTestGenerated.Annotations.testDelegatedPropertySetter, it fails with hard cast
|
||||
(result.argumentList as? FirResolvedArgumentList)?.let { annotationCall.replaceArgumentMapping((it).toAnnotationArgumentMapping()) }
|
||||
annotationCall
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
@@ -49,6 +49,10 @@ open class FirContractResolveTransformer(
|
||||
return annotation
|
||||
}
|
||||
|
||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: ResolutionMode): FirStatement {
|
||||
return annotationCall
|
||||
}
|
||||
|
||||
protected open class FirDeclarationsContractResolveTransformer(transformer: FirBodyResolveTransformer) : FirDeclarationsResolveTransformer(transformer) {
|
||||
override fun transformSimpleFunction(
|
||||
simpleFunction: FirSimpleFunction,
|
||||
|
||||
+6
-4
@@ -138,14 +138,16 @@ private class FirExpressionsResolveTransformerForSpecificAnnotations(
|
||||
) : FirExpressionsResolveTransformer(transformer) {
|
||||
|
||||
override fun transformAnnotation(annotation: FirAnnotation, data: ResolutionMode): FirStatement {
|
||||
if (annotation.resolveStatus >= FirAnnotationResolveStatus.PartiallyResolved) return annotation
|
||||
dataFlowAnalyzer.enterAnnotationCall(annotation)
|
||||
dataFlowAnalyzer.enterAnnotation(annotation)
|
||||
annotation.transformChildren(transformer, ResolutionMode.ContextDependent)
|
||||
dataFlowAnalyzer.exitAnnotationCall(annotation)
|
||||
annotation.replaceResolveStatus(FirAnnotationResolveStatus.PartiallyResolved)
|
||||
dataFlowAnalyzer.exitAnnotation(annotation)
|
||||
return annotation
|
||||
}
|
||||
|
||||
override fun transformAnnotationCall(annotationCall: FirAnnotationCall, data: ResolutionMode): FirStatement {
|
||||
return transformAnnotation(annotationCall, data)
|
||||
}
|
||||
|
||||
override fun transformExpression(expression: FirExpression, data: ResolutionMode): FirStatement {
|
||||
return expression.transformChildren(transformer, data) as FirStatement
|
||||
}
|
||||
|
||||
@@ -11,10 +11,7 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirConstExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.arguments
|
||||
import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.resolve.correspondingSupertypesCache
|
||||
import org.jetbrains.kotlin.fir.resolve.directExpansionType
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
@@ -496,8 +493,9 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty
|
||||
val annotationCall = customAnnotations.firstOrNull {
|
||||
it.typeRef.coneTypeSafe<ConeKotlinType>()?.fullyExpandedType(session)?.classId?.asSingleFqName() == fqName
|
||||
} ?: return null
|
||||
val argument = when (val argument = annotationCall.arguments.firstOrNull() ?: return null) {
|
||||
val argument = when (val argument = annotationCall.argumentMapping.mapping.values.firstOrNull() ?: return null) {
|
||||
is FirVarargArgumentsExpression -> argument.arguments.firstOrNull()
|
||||
is FirArrayOfCall -> argument.arguments.firstOrNull()
|
||||
is FirNamedArgumentExpression -> argument.expression
|
||||
else -> argument
|
||||
} ?: return null
|
||||
|
||||
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
@@ -938,6 +939,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
print(")")
|
||||
}
|
||||
|
||||
override fun visitAnnotationCall(annotationCall: FirAnnotationCall) {
|
||||
visitAnnotation(annotationCall)
|
||||
}
|
||||
|
||||
override fun visitAnnotation(annotation: FirAnnotation) {
|
||||
print("@")
|
||||
annotation.useSiteTarget?.let {
|
||||
@@ -945,7 +950,14 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
print(":")
|
||||
}
|
||||
annotation.annotationTypeRef.accept(this)
|
||||
visitCall(annotation)
|
||||
when (annotation) {
|
||||
is FirAnnotationCall -> if (annotation.calleeReference.let { it is FirResolvedNamedReference || it is FirErrorNamedReference }) {
|
||||
annotation.renderArgumentMapping()
|
||||
} else {
|
||||
visitCall(annotation)
|
||||
}
|
||||
else -> annotation.renderArgumentMapping()
|
||||
}
|
||||
if (annotation.useSiteTarget == AnnotationUseSiteTarget.FILE) {
|
||||
println()
|
||||
} else {
|
||||
@@ -953,6 +965,29 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
}
|
||||
}
|
||||
|
||||
private fun FirAnnotation.renderArgumentMapping() {
|
||||
print("(")
|
||||
if (mode.renderCallArguments) {
|
||||
argumentMapping.mapping.renderSeparated()
|
||||
} else {
|
||||
if (argumentMapping.mapping.isNotEmpty()) {
|
||||
print("...")
|
||||
}
|
||||
}
|
||||
print(")")
|
||||
}
|
||||
|
||||
private fun Map<Name, FirElement>.renderSeparated() {
|
||||
for ((index, element) in this.entries.withIndex()) {
|
||||
val (name, argument) = element
|
||||
if (index > 0) {
|
||||
print(", ")
|
||||
}
|
||||
print("$name = ")
|
||||
argument.accept(this@FirRenderer)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitDelegatedConstructorCall(delegatedConstructorCall: FirDelegatedConstructorCall) {
|
||||
val dispatchReceiver = delegatedConstructorCall.dispatchReceiver
|
||||
if (dispatchReceiver !is FirNoReceiverExpression) {
|
||||
|
||||
+11
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationArgumentMapping
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.unwrapArgument
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -36,3 +37,13 @@ object FirEmptyAnnotationArgumentMapping : FirAnnotationArgumentMapping() {
|
||||
return this
|
||||
}
|
||||
}
|
||||
|
||||
fun FirResolvedArgumentList.toAnnotationArgumentMapping(): FirAnnotationArgumentMapping {
|
||||
return FirAnnotationArgumentMappingImpl(
|
||||
source = null,
|
||||
mapping = mapping.entries.associateBy(
|
||||
keySelector = { it.value.name },
|
||||
valueTransform = { it.key.unwrapArgument() }
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
FILE: implicitNothingInDelegate.kt
|
||||
@R|kotlin/Suppress|(vararg(String(INVISIBLE_REFERENCE), String(INVISIBLE_MEMBER))) public final operator fun <V, V1 : R|V|> R|kotlin/collections/Map<in kotlin/String, @Exact V>|.getValue(thisRef: R|kotlin/Any?|, property: R|kotlin/reflect/KProperty<*>|): R|V1| {
|
||||
@R|kotlin/Suppress|(names = vararg(String(INVISIBLE_REFERENCE), String(INVISIBLE_MEMBER))) public final operator fun <V, V1 : R|V|> R|kotlin/collections/Map<in kotlin/String, @Exact V>|.getValue(thisRef: R|kotlin/Any?|, property: R|kotlin/reflect/KProperty<*>|): R|V1| {
|
||||
^getValue Null(null)!!
|
||||
}
|
||||
public final val m2: R|kotlin/collections/Map<kotlin/String, *>| = R|kotlin/collections/mapOf|<R|kotlin/String|, R|kotlin/String|>(String(baz).R|kotlin/to|<R|kotlin/String|, R|kotlin/String|>(String(bat)))
|
||||
|
||||
Vendored
+251
@@ -0,0 +1,251 @@
|
||||
FILE fqName:<root> fileName:/C.kt
|
||||
CLASS ANNOTATION_CLASS name:Anno modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Anno
|
||||
CONSTRUCTOR visibility:public <> (token:kotlin.String) returnType:<root>.Anno [primary]
|
||||
VALUE_PARAMETER name:token index:0 type:kotlin.String
|
||||
PROPERTY name:token visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:token type:kotlin.String visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'token: kotlin.String declared in <root>.Anno.<init>' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-token> visibility:public modality:FINAL <> ($this:<root>.Anno) returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:token visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Anno
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-token> (): kotlin.String declared in <root>.Anno'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:token type:kotlin.String visibility:private [final]' type=kotlin.String origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Anno declared in <root>.Anno.<get-token>' type=<root>.Anno origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS ENUM_CLASS name:E modality:FINAL visibility:public superTypes:[kotlin.Enum<<root>.E>]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
|
||||
CONSTRUCTOR visibility:private <> () returnType:<root>.E [primary]
|
||||
BLOCK_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'public constructor <init> (name: kotlin.String, ordinal: kotlin.Int) [primary] declared in kotlin.Enum'
|
||||
<E>: <root>.E
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_CLASS name:E modality:FINAL visibility:public superTypes:[kotlin.Enum<<root>.E>]'
|
||||
ENUM_ENTRY name:EA
|
||||
init: EXPRESSION_BODY
|
||||
ENUM_CONSTRUCTOR_CALL 'private constructor <init> () [primary] declared in <root>.E'
|
||||
FUN ENUM_CLASS_SPECIAL_MEMBER name:values visibility:public modality:FINAL <> () returnType:kotlin.Array<<root>.E>
|
||||
SYNTHETIC_BODY kind=ENUM_VALUES
|
||||
FUN ENUM_CLASS_SPECIAL_MEMBER name:valueOf visibility:public modality:FINAL <> (value:kotlin.String) returnType:<root>.E
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.String
|
||||
SYNTHETIC_BODY kind=ENUM_VALUEOF
|
||||
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Any [fake_override]
|
||||
overridden:
|
||||
protected final fun clone (): kotlin.Any declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
FUN FAKE_OVERRIDE name:compareTo visibility:public modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>, other:<root>.E) returnType:kotlin.Int [fake_override,operator]
|
||||
overridden:
|
||||
public final fun compareTo (other: E of kotlin.Enum): kotlin.Int [operator] declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
VALUE_PARAMETER name:other index:0 type:<root>.E
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public final fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public final fun hashCode (): kotlin.Int declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val]
|
||||
overridden:
|
||||
public final name: kotlin.String [val]
|
||||
FUN FAKE_OVERRIDE name:<get-name> visibility:public modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.String [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:name visibility:public modality:FINAL [fake_override,val]
|
||||
overridden:
|
||||
public final fun <get-name> (): kotlin.String declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
PROPERTY FAKE_OVERRIDE name:ordinal visibility:public modality:FINAL [fake_override,val]
|
||||
overridden:
|
||||
public final ordinal: kotlin.Int [val]
|
||||
FUN FAKE_OVERRIDE name:<get-ordinal> visibility:public modality:FINAL <> ($this:kotlin.Enum<E of kotlin.Enum>) returnType:kotlin.Int [fake_override]
|
||||
correspondingProperty: PROPERTY FAKE_OVERRIDE name:ordinal visibility:public modality:FINAL [fake_override,val]
|
||||
overridden:
|
||||
public final fun <get-ordinal> (): kotlin.Int declared in kotlin.Enum
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Enum<E of kotlin.Enum>
|
||||
CLASS ANNOTATION_CLASS name:Annos modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Annos
|
||||
CONSTRUCTOR visibility:public <> (value:kotlin.Array<<root>.Anno>) returnType:<root>.Annos [primary]
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Array<<root>.Anno>
|
||||
PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<<root>.Anno> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'value: kotlin.Array<<root>.Anno> declared in <root>.Annos.<init>' type=kotlin.Array<<root>.Anno> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Annos) returnType:kotlin.Array<<root>.Anno>
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Annos
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.Array<<root>.Anno> declared in <root>.Annos'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<<root>.Anno> visibility:private [final]' type=kotlin.Array<<root>.Anno> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Annos declared in <root>.Annos.<get-value>' type=<root>.Annos origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS ANNOTATION_CLASS name:Strings modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Strings
|
||||
CONSTRUCTOR visibility:public <> (value:kotlin.Array<kotlin.String>) returnType:<root>.Strings [primary]
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Array<kotlin.String>
|
||||
PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<kotlin.String> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'value: kotlin.Array<kotlin.String> declared in <root>.Strings.<init>' type=kotlin.Array<kotlin.String> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Strings) returnType:kotlin.Array<kotlin.String>
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Strings
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.Array<kotlin.String> declared in <root>.Strings'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<kotlin.String> visibility:private [final]' type=kotlin.Array<kotlin.String> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Strings declared in <root>.Strings.<get-value>' type=<root>.Strings origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS ANNOTATION_CLASS name:Ints modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Ints
|
||||
CONSTRUCTOR visibility:public <> (value:kotlin.IntArray) returnType:<root>.Ints [primary]
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.IntArray
|
||||
PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.IntArray visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'value: kotlin.IntArray declared in <root>.Ints.<init>' type=kotlin.IntArray origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Ints) returnType:kotlin.IntArray
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Ints
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.IntArray declared in <root>.Ints'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.IntArray visibility:private [final]' type=kotlin.IntArray origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Ints declared in <root>.Ints.<get-value>' type=<root>.Ints origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS ANNOTATION_CLASS name:Enums modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Enums
|
||||
CONSTRUCTOR visibility:public <> (value:kotlin.Array<<root>.E>) returnType:<root>.Enums [primary]
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Array<<root>.E>
|
||||
PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<<root>.E> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'value: kotlin.Array<<root>.E> declared in <root>.Enums.<init>' type=kotlin.Array<<root>.E> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Enums) returnType:kotlin.Array<<root>.E>
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Enums
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.Array<<root>.E> declared in <root>.Enums'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<<root>.E> visibility:private [final]' type=kotlin.Array<<root>.E> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Enums declared in <root>.Enums.<get-value>' type=<root>.Enums origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS ANNOTATION_CLASS name:Classes modality:FINAL visibility:public superTypes:[kotlin.Annotation]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Classes
|
||||
CONSTRUCTOR visibility:public <> (value:kotlin.Array<kotlin.reflect.KClass<*>>) returnType:<root>.Classes [primary]
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Array<kotlin.reflect.KClass<*>>
|
||||
PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<kotlin.reflect.KClass<*>> visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'value: kotlin.Array<kotlin.reflect.KClass<*>> declared in <root>.Classes.<init>' type=kotlin.Array<kotlin.reflect.KClass<*>> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.Classes) returnType:kotlin.Array<kotlin.reflect.KClass<*>>
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Classes
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> (): kotlin.Array<kotlin.reflect.KClass<*>> declared in <root>.Classes'
|
||||
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:kotlin.Array<kotlin.reflect.KClass<*>> visibility:private [final]' type=kotlin.Array<kotlin.reflect.KClass<*>> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Classes declared in <root>.Classes.<get-value>' type=<root>.Classes origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in kotlin.Annotation
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A]'
|
||||
FUN FAKE_OVERRIDE name:test visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.Unit [fake_override]
|
||||
annotations:
|
||||
Annos(value = <null>)
|
||||
Strings(value = <null>)
|
||||
Ints(value = <null>)
|
||||
Enums(value = <null>)
|
||||
Classes(value = <null>)
|
||||
overridden:
|
||||
public open fun test (): kotlin.Unit declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class AnnotatedConstructor : R|kotlin/Any| {
|
||||
@R|test/AnnotatedConstructor.Anno|(String(constructor)) public constructor(): R|test/AnnotatedConstructor|
|
||||
@R|test/AnnotatedConstructor.Anno|(value = String(constructor)) public constructor(): R|test/AnnotatedConstructor|
|
||||
|
||||
public final annotation class Anno : R|kotlin/Annotation| {
|
||||
public constructor(value: R|kotlin/String|): R|test/AnnotatedConstructor.Anno|
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
public open class AnnotatedField : R|kotlin/Any| {
|
||||
@R|test/AnnotatedField.Anno|(String(static)) public final static field x: R|kotlin/Int| = Int(0)
|
||||
@R|test/AnnotatedField.Anno|(value = String(static)) public final static field x: R|kotlin/Int| = Int(0)
|
||||
|
||||
@R|test/AnnotatedField.Anno|(String(member)) public final field y: R|kotlin/Int| = Int(0)
|
||||
@R|test/AnnotatedField.Anno|(value = String(member)) public final field y: R|kotlin/Int| = Int(0)
|
||||
|
||||
public constructor(): R|test/AnnotatedField|
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class AnnotatedMethod : R|kotlin/Any| {
|
||||
@R|test/AnnotatedMethod.Anno|(Int(42)) public open fun f(): R|kotlin/Unit|
|
||||
@R|test/AnnotatedMethod.Anno|(value = Int(42)) public open fun f(): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/AnnotatedMethod|
|
||||
|
||||
|
||||
+2
-2
@@ -6,11 +6,11 @@ public/*package*/ open class AnnotatedParameterInInnerClassConstructor : R|kotli
|
||||
|
||||
}
|
||||
public/*package*/ open inner class Inner : R|kotlin/Any| {
|
||||
public/*package*/ constructor(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.Inner|
|
||||
public/*package*/ constructor(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.Inner|
|
||||
|
||||
}
|
||||
public/*package*/ open inner class InnerGeneric<T : R|ft<kotlin/Any, kotlin/Any?>|> : R|kotlin/Any| {
|
||||
public/*package*/ constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.InnerGeneric<T>|
|
||||
public/*package*/ constructor<T : R|ft<kotlin/Any, kotlin/Any?>|>(@R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(a)) a: R|ft<kotlin/String, kotlin/String?>|, @R|test/AnnotatedParameterInInnerClassConstructor.Anno|(value = String(b)) b: R|ft<kotlin/String, kotlin/String?>|): R|test/AnnotatedParameterInInnerClassConstructor.InnerGeneric<T>|
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,9 +1,9 @@
|
||||
public/*package*/ open class AnnotatedTypeInFun : R|kotlin/Any| {
|
||||
public/*package*/ open fun foo(@R|test/AnnotatedTypeInFun.Anno|(String(a)) a: R|ft<@R|test/AnnotatedTypeInFun.Anno|(String(a)) kotlin/String, @R|test/AnnotatedTypeInFun.Anno|(String(a)) kotlin/String?>|, @R|test/AnnotatedTypeInFun.Anno|(String(b)) b: R|ft<@R|test/AnnotatedTypeInFun.Anno|(String(b)) kotlin/String, @R|test/AnnotatedTypeInFun.Anno|(String(b)) kotlin/String?>|): R|kotlin/Unit|
|
||||
public/*package*/ open fun foo(@R|test/AnnotatedTypeInFun.Anno|(value = String(a)) a: R|ft<@R|test/AnnotatedTypeInFun.Anno|(value = String(a)) kotlin/String, @R|test/AnnotatedTypeInFun.Anno|(value = String(a)) kotlin/String?>|, @R|test/AnnotatedTypeInFun.Anno|(value = String(b)) b: R|ft<@R|test/AnnotatedTypeInFun.Anno|(value = String(b)) kotlin/String, @R|test/AnnotatedTypeInFun.Anno|(value = String(b)) kotlin/String?>|): R|kotlin/Unit|
|
||||
|
||||
public/*package*/ constructor(): R|test/AnnotatedTypeInFun|
|
||||
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.TYPE|())) public final annotation class Anno : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.TYPE|())) public final annotation class Anno : R|kotlin/Annotation| {
|
||||
public constructor(value: R|kotlin/String|): R|test/AnnotatedTypeInFun.Anno|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public open class AnnotatedValueParameter : R|kotlin/Any| {
|
||||
public open fun f(@R|test/AnnotatedValueParameter.Anno|(String(non-empty)) parameter: R|ft<kotlin/collections/MutableList<ft<kotlin/String, kotlin/String?>>, kotlin/collections/List<ft<kotlin/String, kotlin/String?>>?>|): R|kotlin/Unit|
|
||||
public open fun f(@R|test/AnnotatedValueParameter.Anno|(value = String(non-empty)) parameter: R|ft<kotlin/collections/MutableList<ft<kotlin/String, kotlin/String?>>, kotlin/collections/List<ft<kotlin/String, kotlin/String?>>?>|): R|kotlin/Unit|
|
||||
|
||||
public constructor(): R|test/AnnotatedValueParameter|
|
||||
|
||||
|
||||
+3
-3
@@ -1,13 +1,13 @@
|
||||
public abstract interface AnnotationInParam : R|kotlin/Any| {
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam|(@R|test/AnnotationInParam.MyAnnotation|(String(test)) ) public open class A : R|kotlin/Any| {
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam|(value = @R|test/AnnotationInParam.MyAnnotation|(value = String(test)) ) public open class A : R|kotlin/Any| {
|
||||
public constructor(): R|test/AnnotationInParam.A|
|
||||
|
||||
}
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam2|(@R|test/AnnotationInParam.MyAnnotation2|(<implicitArrayOf>(String(test), String(test2))) ) public open class B : R|kotlin/Any| {
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam2|(value = @R|test/AnnotationInParam.MyAnnotation2|(value = <implicitArrayOf>(String(test), String(test2))) ) public open class B : R|kotlin/Any| {
|
||||
public constructor(): R|test/AnnotationInParam.B|
|
||||
|
||||
}
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam3|(@R|test/AnnotationInParam.MyAnnotation3|(String(f), String(s)) ) public open class C : R|kotlin/Any| {
|
||||
@R|test/AnnotationInParam.MyAnnotationWithParam3|(value = @R|test/AnnotationInParam.MyAnnotation3|(first = String(f), second = String(s)) ) public open class C : R|kotlin/Any| {
|
||||
public constructor(): R|test/AnnotationInParam.C|
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -9,7 +9,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
|
||||
public/*package*/ constructor(): R|test/AnnotationRetentions.BaseClass|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.BINARY|()) public final annotation class BinaryAnnotation : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.BINARY|()) public final annotation class BinaryAnnotation : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationRetentions.BinaryAnnotation|
|
||||
|
||||
}
|
||||
@@ -17,7 +17,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
|
||||
public/*package*/ constructor(): R|test/AnnotationRetentions.BinaryClass|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class RuntimeAnnotation : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.RUNTIME|()) public final annotation class RuntimeAnnotation : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationRetentions.RuntimeAnnotation|
|
||||
|
||||
}
|
||||
@@ -25,7 +25,7 @@ public open class AnnotationRetentions : R|kotlin/Any| {
|
||||
public/*package*/ constructor(): R|test/AnnotationRetentions.RuntimeClass|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Retention|(R|kotlin/annotation/AnnotationRetention.SOURCE|()) public final annotation class SourceAnnotation : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Retention|(value = R|kotlin/annotation/AnnotationRetention.SOURCE|()) public final annotation class SourceAnnotation : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationRetentions.SourceAnnotation|
|
||||
|
||||
}
|
||||
|
||||
+9
-9
@@ -1,7 +1,7 @@
|
||||
public open class AnnotationTargets : R|kotlin/Any| {
|
||||
public constructor(): R|test/AnnotationTargets|
|
||||
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|())) public final annotation class annotation : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.ANNOTATION_CLASS|())) public final annotation class annotation : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.annotation|
|
||||
|
||||
}
|
||||
@@ -9,35 +9,35 @@ public open class AnnotationTargets : R|kotlin/Any| {
|
||||
public constructor(): R|test/AnnotationTargets.base|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|())) public final annotation class constructor : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|())) public final annotation class constructor : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.constructor|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.FIELD|())) public final annotation class field : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.FIELD|())) public final annotation class field : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.field|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|())) public final annotation class local : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.LOCAL_VARIABLE|())) public final annotation class local : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.local|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) public final annotation class method : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) public final annotation class method : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.method|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.FIELD|(), R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) public final annotation class multiple : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.FIELD|(), R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|(), R|kotlin/annotation/AnnotationTarget.FUNCTION|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_GETTER|(), R|kotlin/annotation/AnnotationTarget.PROPERTY_SETTER|())) public final annotation class multiple : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.multiple|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>()) public final annotation class packag : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg()) public final annotation class packag : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.packag|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|())) public final annotation class parameter : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|())) public final annotation class parameter : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.parameter|
|
||||
|
||||
}
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) public final annotation class type : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.CLASS|(), R|kotlin/annotation/AnnotationTarget.FILE|())) public final annotation class type : R|kotlin/Annotation| {
|
||||
public constructor(): R|test/AnnotationTargets.type|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ public open class ArithmeticExpressionInParam : R|kotlin/Any| {
|
||||
public constructor(value: R|kotlin/Int|): R|test/ArithmeticExpressionInParam.Anno|
|
||||
|
||||
}
|
||||
@R|test/ArithmeticExpressionInParam.Anno|(Int(42)) public open class Class : R|kotlin/Any| {
|
||||
@R|test/ArithmeticExpressionInParam.Anno|(value = Int(42)) public open class Class : R|kotlin/Any| {
|
||||
public constructor(): R|test/ArithmeticExpressionInParam.Class|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public abstract interface ArrayOfEnumInParam : R|kotlin/Any| {
|
||||
@R|kotlin/annotation/Target|(<implicitArrayOf>(R|kotlin/annotation/AnnotationTarget.FIELD|(), R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|())) public final annotation class targetAnnotation : R|kotlin/Annotation| {
|
||||
@R|kotlin/annotation/Target|(allowedTargets = vararg(R|kotlin/annotation/AnnotationTarget.FIELD|(), R|kotlin/annotation/AnnotationTarget.CONSTRUCTOR|())) public final annotation class targetAnnotation : R|kotlin/Annotation| {
|
||||
public constructor(value: R|kotlin/String|): R|test/ArrayOfEnumInParam.targetAnnotation|
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
public abstract interface ArrayOfStringInParam : R|kotlin/Any| {
|
||||
@R|test/ArrayOfStringInParam.MyAnnotation|(<implicitArrayOf>(String(a), String(b), String(c))) public open class A : R|kotlin/Any| {
|
||||
@R|test/ArrayOfStringInParam.MyAnnotation|(value = <implicitArrayOf>(String(a), String(b), String(c))) public open class A : R|kotlin/Any| {
|
||||
public constructor(): R|test/ArrayOfStringInParam.A|
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user