result origins is a boolean array
using type info during result origins analysis
no need to proceed invokeInterface for now
handling INVOKEINTERFACE as TOP
optimizations

no need in btransitions, computed are always computed
nullable: early result if param was passed to interface method
optimization: leaking params are array
taking into account empty methods
logging
option to run in "idle mode"
optimization: lazy hashCode
two optimizations: explicit errors + merging non-back edges
reusing info from @NotNull analysis in @Nullable analysis
2 optimizations

1. computed is an array
2. no MakeResult for @Nullable analysis
localizing id generation
limiting number of elementary steps to 30000
scala 2.11.2
optimization: results are array

since the number of steps is limited to 2^15 it is OK to have an array of such size for results
optimization: pending actions are array
refactoring of interpreters in parameters