Package qilin.core.pag
Class ArrayElement
java.lang.Object
qilin.core.pag.ArrayElement
- All Implemented Interfaces:
SparkField
A pseudo-field standing in for "any element of any array", used to model array stores/loads
field-insensitively:
PAG holds exactly one ArrayElement instance (see PAG.getArrayElement()), shared across every array type in the program. Because a single,
parameterless ArrayElement represents cells of int[], String[],
Foo[], ... all merged together, there is no single real element type it could report -- getType() deliberately returns JavaTypes.OBJECT rather than picking one array's element
type arbitrarily. This is an intentional precision/scalability trade-off (the same one Spark
made), not information lost by accident; a genuinely array-type-sensitive analysis would need
per-(allocation-site-or-type) elements instead of this shared singleton.- Author:
- Ondrej Lhotak
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
ArrayElement
public ArrayElement()
-
-
Method Details
-
getNumber
public final int getNumber() -
setNumber
public final void setNumber(int number) -
getType
- Specified by:
getTypein interfaceSparkField
-