Uast: support for Kotlin array literals
This commit is contained in:
+9
-1
@@ -3,6 +3,8 @@ annotation class IntRange(val from: Long, val to: Long)
|
||||
|
||||
annotation class RequiresPermission(val anyOf: IntArray)
|
||||
|
||||
annotation class RequiresStrPermission(val strs: Array<String>)
|
||||
|
||||
annotation class WithDefaultValue(val value: Int = 42)
|
||||
|
||||
annotation class SuppressLint(vararg val value: String)
|
||||
@@ -15,4 +17,10 @@ fun foo(): Int = 5
|
||||
|
||||
@IntRange(0, 100)
|
||||
@SuppressLint("Lorem", "Ipsum", "Dolor")
|
||||
fun bar() = Unit
|
||||
fun bar() = Unit
|
||||
|
||||
@RequiresPermission(anyOf = [1, 2, 3])
|
||||
fun fooWithArrLiteral(): Int = 5
|
||||
|
||||
@RequiresStrPermission(strs = ["a", "b", "c"])
|
||||
fun fooWithStrArrLiteral(): Int = 3
|
||||
@@ -32,11 +32,31 @@ UFile (package = )
|
||||
ULiteralExpression (value = "Ipsum")
|
||||
ULiteralExpression (value = "Dolor")
|
||||
USimpleNameReferenceExpression (identifier = Unit)
|
||||
UAnnotationMethod (name = fooWithArrLiteral)
|
||||
UAnnotation (fqName = RequiresPermission)
|
||||
UNamedExpression (name = anyOf)
|
||||
UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
|
||||
UIdentifier (Identifier ([))
|
||||
ULiteralExpression (value = 1)
|
||||
ULiteralExpression (value = 2)
|
||||
ULiteralExpression (value = 3)
|
||||
ULiteralExpression (value = 5)
|
||||
UAnnotationMethod (name = fooWithStrArrLiteral)
|
||||
UAnnotation (fqName = RequiresStrPermission)
|
||||
UNamedExpression (name = strs)
|
||||
UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
|
||||
UIdentifier (Identifier ([))
|
||||
ULiteralExpression (value = "a")
|
||||
ULiteralExpression (value = "b")
|
||||
ULiteralExpression (value = "c")
|
||||
ULiteralExpression (value = 3)
|
||||
UClass (name = IntRange)
|
||||
UAnnotationMethod (name = from)
|
||||
UAnnotationMethod (name = to)
|
||||
UClass (name = RequiresPermission)
|
||||
UAnnotationMethod (name = anyOf)
|
||||
UClass (name = RequiresStrPermission)
|
||||
UAnnotationMethod (name = strs)
|
||||
UClass (name = WithDefaultValue)
|
||||
UAnnotationMethod (name = value)
|
||||
ULiteralExpression (value = 42)
|
||||
|
||||
@@ -7,6 +7,10 @@ public final class AnnotationParametersKt {
|
||||
@IntRange(from = 0, to = 100)
|
||||
@SuppressLint(value = <noref>("Lorem", "Ipsum", "Dolor"))
|
||||
public static final fun bar() : void = Unit
|
||||
@RequiresPermission(anyOf = collectionLiteral[1, 2, 3])
|
||||
public static final fun fooWithArrLiteral() : int = 5
|
||||
@RequiresStrPermission(strs = collectionLiteral["a", "b", "c"])
|
||||
public static final fun fooWithStrArrLiteral() : int = 3
|
||||
}
|
||||
|
||||
public abstract annotation IntRange {
|
||||
@@ -18,6 +22,10 @@ public abstract annotation RequiresPermission {
|
||||
public abstract fun anyOf() : int[] = UastEmptyExpression
|
||||
}
|
||||
|
||||
public abstract annotation RequiresStrPermission {
|
||||
public abstract fun strs() : java.lang.String[] = UastEmptyExpression
|
||||
}
|
||||
|
||||
public abstract annotation WithDefaultValue {
|
||||
public abstract fun value() : int = UastEmptyExpression
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user