Support field type annotations

#KT-35843 Fixed
This commit is contained in:
Mikhael Bogdanov
2020-01-08 08:30:29 +01:00
parent 2ed0cb2a89
commit 1032e3a17c
15 changed files with 221 additions and 48 deletions
@@ -2,9 +2,9 @@ public final class foo/Kotlin : java/lang/Object {
public void <init>()
public final java.lang.Object foo(java.lang.String s, int x)
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="2"]) : METHOD_FORMAL_PARAMETER 1, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
public static java.lang.Object foo$default(foo.Kotlin p0, java.lang.String p1, int p2, int p3, java.lang.Object p4)
}
@@ -2,13 +2,13 @@ public final class foo/FooClass : java/lang/Object {
public void <init>()
public final java.lang.Object foo(java.lang.String s, int x)
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="2"]) : METHOD_FORMAL_PARAMETER 1, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
public final java.lang.Object foo(java.lang.String s)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
public final java.lang.Object foo()
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@@ -18,4 +18,4 @@ public final class foo/FooClass : java/lang/Object {
public abstract interface foo/TypeAnn : java/lang/Object, java/lang/annotation/Annotation {
public abstract java.lang.String name()
}
}
@@ -6,9 +6,9 @@ public final class foo/Foo : java/lang/Object {
private void <init>()
public final static java.lang.Object foo(java.lang.String s, int x)
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="2"]) : METHOD_FORMAL_PARAMETER 1, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
}
public final class foo/FooClass$Companion : java/lang/Object {
@@ -17,9 +17,9 @@ public final class foo/FooClass$Companion : java/lang/Object {
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
public final java.lang.Object foo(java.lang.String s, int x)
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="2"]) : METHOD_FORMAL_PARAMETER 1, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
}
public final class foo/FooClass : java/lang/Object {
@@ -30,9 +30,9 @@ public final class foo/FooClass : java/lang/Object {
public void <init>()
public final static java.lang.Object foo(java.lang.String s, int x)
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnn;([name="2"]) : METHOD_FORMAL_PARAMETER 1, null
@Lfoo/TypeAnn;([name="return"]) : METHOD_RETURN, null
}
public abstract interface foo/TypeAnn : java/lang/Object, java/lang/annotation/Annotation {
@@ -37,7 +37,16 @@ class Kotlin {
lateinit var lateinitProp: @TypeAnn("1") @TypeAnnBinary @TypeAnnSource String
val annotatedGetter: Int
get(): @TypeAnn("1") @TypeAnnBinary @TypeAnnSource Int = 123
val unannotatedGetter: @TypeAnn("1") @TypeAnnBinary @TypeAnnSource Int
get(): Int = 123
companion object {
var companionVarProperty: @TypeAnn("1") @TypeAnnBinary @TypeAnnSource String = "123"
@JvmStatic
var jvmStatic: @TypeAnn("1") @TypeAnnBinary @TypeAnnSource String = "123"
}
}
@@ -0,0 +1,121 @@
public final class foo/Kotlin$Companion : java/lang/Object {
private void <init>()
public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)
public final java.lang.String getCompanionVarProperty()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final java.lang.String getJvmStatic()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public static void jvmStatic$annotations()
public final void setCompanionVarProperty(java.lang.String <set-?>)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnnBinary;([]) : METHOD_FORMAL_PARAMETER 0, null // invisible
public final void setJvmStatic(java.lang.String <set-?>)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnnBinary;([]) : METHOD_FORMAL_PARAMETER 0, null // invisible
}
public final class foo/Kotlin : java/lang/Object {
public final static foo.Kotlin$Companion Companion
private static java.lang.String companionVarProperty
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
private java.lang.String customSetter
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
public java.lang.String jvmField
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
private static java.lang.String jvmStatic
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
public java.lang.String lateinitProp
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
private final java.lang.String valProp
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
private java.lang.String varProp
@Lfoo/TypeAnn;([name="1"]) : FIELD, null
@Lfoo/TypeAnnBinary;([]) : FIELD, null // invisible
static void <clinit>()
public void <init>()
public final static java.lang.String access$getCompanionVarProperty$cp()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final static java.lang.String access$getJvmStatic$cp()
public final static void access$setCompanionVarProperty$cp(java.lang.String <set-?>)
public final static void access$setJvmStatic$cp(java.lang.String <set-?>)
public final int getAnnotatedGetter()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final java.lang.String getCustomSetter()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final static java.lang.String getJvmStatic()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final java.lang.String getLateinitProp()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final int getUnannotatedGetter()
public final java.lang.String getValProp()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final java.lang.String getVarProp()
@Lfoo/TypeAnn;([name="1"]) : METHOD_RETURN, null
@Lfoo/TypeAnnBinary;([]) : METHOD_RETURN, null // invisible
public final void setCustomSetter(java.lang.String field)
public final static void setJvmStatic(java.lang.String <set-?>)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnnBinary;([]) : METHOD_FORMAL_PARAMETER 0, null // invisible
public final void setLateinitProp(java.lang.String <set-?>)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnnBinary;([]) : METHOD_FORMAL_PARAMETER 0, null // invisible
public final void setVarProp(java.lang.String <set-?>)
@Lfoo/TypeAnn;([name="1"]) : METHOD_FORMAL_PARAMETER 0, null
@Lfoo/TypeAnnBinary;([]) : METHOD_FORMAL_PARAMETER 0, null // invisible
}
public abstract interface foo/TypeAnn : java/lang/Object, java/lang/annotation/Annotation {
public abstract java.lang.String name()
}
public abstract interface foo/TypeAnnBinary : java/lang/Object, java/lang/annotation/Annotation {
}
public abstract interface foo/TypeAnnSource : java/lang/Object, java/lang/annotation/Annotation {
}