UAST: Fix KotlinUMethod annotation handling, properly handle use site targets

#KT-16834 Fixed
 #KT-18893 Fixed
This commit is contained in:
Vyacheslav Gerasimov
2017-07-28 17:25:39 +03:00
parent f24488915a
commit 915f47133b
5 changed files with 57 additions and 1 deletions
+13
View File
@@ -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 {
}