UAST: Fix KotlinUMethod annotation handling, properly handle use site targets
#KT-16834 Fixed #KT-18893 Fixed
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
annotation class TestAnnotation
|
||||
|
||||
@TestAnnotation
|
||||
val prop1: Int = 0
|
||||
|
||||
@get:TestAnnotation
|
||||
val prop2: Int
|
||||
get() = 0
|
||||
|
||||
@set:TestAnnotation
|
||||
var prop3: Int = 0
|
||||
get() = 0
|
||||
set(value) { field = value }
|
||||
@@ -0,0 +1,23 @@
|
||||
UFile (package = )
|
||||
UClass (name = PropertyWithAnnotationKt)
|
||||
UField (name = prop1)
|
||||
UAnnotation (fqName = null)
|
||||
ULiteralExpression (value = 0)
|
||||
UField (name = prop3)
|
||||
UAnnotation (fqName = null)
|
||||
ULiteralExpression (value = 0)
|
||||
UAnnotationMethod (name = getProp1)
|
||||
UAnnotationMethod (name = getProp2)
|
||||
UAnnotation (fqName = TestAnnotation)
|
||||
ULiteralExpression (value = 0)
|
||||
UAnnotationMethod (name = getProp3)
|
||||
ULiteralExpression (value = 0)
|
||||
UAnnotationMethod (name = setProp3)
|
||||
UAnnotation (fqName = TestAnnotation)
|
||||
UParameter (name = value)
|
||||
UAnnotation (fqName = null)
|
||||
UBlockExpression
|
||||
UBinaryExpression (operator = =)
|
||||
USimpleNameReferenceExpression (identifier = field)
|
||||
USimpleNameReferenceExpression (identifier = value)
|
||||
UClass (name = TestAnnotation)
|
||||
@@ -0,0 +1,15 @@
|
||||
public final class PropertyWithAnnotationKt {
|
||||
private static final var prop1: int = 0
|
||||
private static var prop3: int = 0
|
||||
public static final fun getProp1() : int = UastEmptyExpression
|
||||
@TestAnnotation
|
||||
public static final fun getProp2() : int = 0
|
||||
public static final fun getProp3() : int = 0
|
||||
@TestAnnotation
|
||||
public static final fun setProp3(value: int) : void {
|
||||
field = value
|
||||
}
|
||||
}
|
||||
|
||||
public abstract annotation TestAnnotation {
|
||||
}
|
||||
Reference in New Issue
Block a user