Skip to content

Java Analyzer check-list #25

Open
Open
@sergeypospelov

Description

@sergeypospelov

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

Functions

  • Member functions
  • Static functions
  • Recursive functions
  • Throwing functions
  • Abstract functions

Arrays

  • 1-D arrays initialization
  • Multidimensional arrays initialization
  • Writing, reading
  • Length

Statics

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

Approximations

  • Primitive wrappers
  • Collections
  • ...

Other issues

  • JacoDB incorrectly handles types for operations on integrals like char, short, etc. See this. Fixed in Support of UTypeStreams and casts in JcInterpreter #34
  • No coverage for a JcTest
  • No ULValues for this and locals
  • Multidimensional arrays are resolved incorrectly in JcTestResolver
  • Can't easily extend UMemoryBase now
  • 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions