UAST: Fix annotation arguments processing

multiple unnamed arguments represented as value named expression with array initializer
 call kind for array in annotation argument should be "array initializer" instead of "method call"

 #KT-16600 Fixed Target Versions 1.1.5
This commit is contained in:
Vyacheslav Gerasimov
2017-08-24 16:33:52 +03:00
parent e0bf438195
commit 56a075eab6
10 changed files with 361 additions and 32 deletions
@@ -1,12 +1,44 @@
UFile (package = )
UClass (name = AnnotationParametersKt)
UAnnotationMethod (name = foo)
UAnnotation (fqName = RequiresPermission)
UNamedExpression (name = anyOf)
UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
UIdentifier (Identifier (intArrayOf))
USimpleNameReferenceExpression (identifier = intArrayOf)
ULiteralExpression (value = 1)
ULiteralExpression (value = 2)
ULiteralExpression (value = 3)
UAnnotation (fqName = IntRange)
UNamedExpression (name = from)
ULiteralExpression (value = 10)
UNamedExpression (name = to)
ULiteralExpression (value = 0)
UAnnotation (fqName = WithDefaultValue)
UAnnotation (fqName = SuppressLint)
UNamedExpression (name = value)
ULiteralExpression (value = "Lorem")
ULiteralExpression (value = 5)
UAnnotationMethod (name = bar)
UAnnotation (fqName = IntRange)
UNamedExpression (name = from)
ULiteralExpression (value = 0)
UNamedExpression (name = to)
ULiteralExpression (value = 100)
UAnnotation (fqName = SuppressLint)
UNamedExpression (name = value)
UCallExpression (kind = UastCallKind(name='array_initializer'), argCount = 3))
ULiteralExpression (value = "Lorem")
ULiteralExpression (value = "Ipsum")
ULiteralExpression (value = "Dolor")
USimpleNameReferenceExpression (identifier = Unit)
UClass (name = IntRange)
UAnnotationMethod (name = from)
UAnnotationMethod (name = to)
UClass (name = RequiresPermission)
UAnnotationMethod (name = anyOf)
UClass (name = WithDefaultValue)
UAnnotationMethod (name = value)
ULiteralExpression (value = 42)
UClass (name = SuppressLint)
UAnnotationMethod (name = value)