-
Notifications
You must be signed in to change notification settings - Fork 26
Open
Description
This issue contains classification of supported and unsupported features in Java Analyzer.
Features
Objects
- Primitive types
- Reference types
- Arrays
- Interfaces
- Abstract classes
Operators
-
Add/Sub/Mul/Div/Rem -
Shl/Shr/Ushr -
Or/And/Xor/Eq/Neq/Ge/Gt/Le/Lt -
Cmp/Cmpg/Cmpl -
Neg
Control flow
- Branching
- Loops
- Switch. Added in Supported switch instruction in JaCoDB interpreter #39
- Recursive calls
Functions
- Member functions
- Static functions
- Recursive functions
- Throwing functions
- Abstract functions
Arrays
- 1-D arrays initialization
- Multidimensional arrays initialization
- Writing, reading
- Length
Statics
- Static fields. Added in Initial support for static fields in JcInterpreter #30
- Static initialization. Added in Initial support for static fields in JcInterpreter #30
Exceptions
-
NullPointerException -
IndexOutOfBoundsException -
NegativeArraySizeException -
ArithmeticException - Explicit exceptions
- Exception handlers
- Exception trace recovery
- Implicit/explicit exceptions distinguishing
Invokes
- Special invokes
- Static invokes
- Virtual invokes. Added in Virtual calls #43
- Dynamic invokes
Types
- Integral type casts
- Floating type casts
-
float/doubletoint/long -
int/longtofloat/double -
instance of. Added in Support of complex type constraints #41 - Casts. Added in Support of
UTypeStreams and casts inJcInterpreter#34
Approximations
- Primitive wrappers
- Collections
- ...
Other issues
- JacoDB incorrectly handles types for operations on integrals like
char,short, etc. See this. Fixed in Support ofUTypeStreams and casts inJcInterpreter#34 - No coverage for a
JcTest - No
ULValues forthisand locals - Multidimensional arrays are resolved incorrectly in
JcTestResolver - Can't easily extend
UMemoryBasenow - Minimize test cases based on thrown exceptions
- Strange hack with
callStack.isNotEmpty() - Locals count and parameters count are always evaluated, though it can be cached
- Very big arrays causes OOME in
JcTestResolver - If statements not always have both successors
- Create arrays with default value and a couple of writes
Metadata
Metadata
Assignees
Labels
No labels