I use soot to analyze some java programs, but it cannot provide detailed type information of VisibilityLocalVariableAnnotationTag. Considering the consistency between LocalVariableAnnotationTag and ParameterAnnotationTag, it also should provide type information. Please see the case below.
Input file
void method() {
@A String s = new String();
}
package org.annotation;
@Retention(RUNTIME)
@Target({TYPE_USE})
@interface A {}
To reproduce
Compile this source code file into bytecode;
Use soot to analyze class file;
We can find the AnnotationTag does not have accurate type information, like:
Visibility LocalVariable Annotation: num Annotation: 1 kind: 0
Visibility Annotation: level: RUNTIME (runtime-visible)
Annotations:
Annotation type: (I)V without elements
Expected behavior
The document said LocalVariableAnnotationTag and ParameterAnnotationTag differ only in the type of marked object, but we can directly get the type information like Annotation type: Annotation type: Lorg/annotation/B; without elements (See the below code example).
Describe the bug
I use soot to analyze some java programs, but it cannot provide detailed type information of
VisibilityLocalVariableAnnotationTag
. Considering the consistency betweenLocalVariableAnnotationTag
andParameterAnnotationTag
, it also should provide type information. Please see the case below.Input file
To reproduce
Expected behavior
The document said LocalVariableAnnotationTag and ParameterAnnotationTag differ only in the type of marked object, but we can directly get the type information like
Annotation type: Annotation type: Lorg/annotation/B; without elements
(See the below code example).So, Soot should provide
Lorg/annotation/A
type information in theLocalVariableAnnotationTag
.