From 6f1124d7e7fbd2fef12888e34bd45f8fcdfd0795 Mon Sep 17 00:00:00 2001 From: Tony Torralba Date: Tue, 19 Apr 2022 12:49:45 +0200 Subject: [PATCH] Handle more annotation element value types --- java/ql/src/utils/stub-generator/Stubs.qll | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/java/ql/src/utils/stub-generator/Stubs.qll b/java/ql/src/utils/stub-generator/Stubs.qll index 5eee79b0e5d..c25be4e201c 100644 --- a/java/ql/src/utils/stub-generator/Stubs.qll +++ b/java/ql/src/utils/stub-generator/Stubs.qll @@ -412,8 +412,20 @@ private string stubAnnotation(Annotation a) { } private string stubAnnotationSimpleValue(Expr value) { - result = value.(FieldAccess).getField().getQualifiedName() or - result = value.(Literal).toString() + result = value.(FieldAccess).getField().getQualifiedName() + or + result = value.(Literal).getLiteral() + or + not value instanceof Literal and + ( + result = value.(CompileTimeConstantExpr).getStringValue() or + result = value.(CompileTimeConstantExpr).getBooleanValue().toString() or + result = value.(CompileTimeConstantExpr).getIntValue().toString() + ) + or + result = value.(Annotation).getType().getName() + or + result = value.(TypeLiteral).getReferencedType().getName() + ".class" } private string stubAnnotationValue(Expr value) {