This release improves the detection of Direct State Access defect.
This release introduces additional compatibility fixes for j2eo
:
- Logic extraction for
unjustified assumption
andliskov principle
analyzers now recognizes J2EO primitives
This release introduces additional compatibility fixes for j2eo
:
- Additional checks for cycles in inheritance chains
- j2eo primitives are added to every program (temporary fix)
- Refactoring of several analyzers
- Direct state access analyzer now considers J2EO primitives as state containers
- Logic extraction now utilizes
Let
instead ofExists
- Enhanced topological sorting of terms
- Fixed several SMT solver problems
This release made several changes to make odin recognize output from j2eo
.
- odin: Support this keyword
- odin: do not count constructor as method
- odin: debug defect detection on small classes translated by J2EO
- odin: Support attribute aliasing for decoration (support super)
- odin: Support objects with seq > @ (take last expresssion in seq)
- odin: Fix error "Some case is not checked: EOBoolData(true)"
- odin: import class_Object
This is a maintenance release. Notable changes:
- Published for Scala 3! (#60)
- Tests for mutual recursion analyzer were fixed. (#55)
- Dropped some dependencies:
- Enabled import organizing with a scalafix plugin (#56)
- Added direct access to base class analyzer (4th defect type) (see #48)
- Added Liskov substitution principle analyzer (5th defect type) (see #51)
- Improved the logic extraction algorithm (used in detection of defects 3 and 5) such that it supports functions with regular/mutual recursion (see #51)
- Added support for imports without the alias (see #44)
- Fixed the XMIR-to-AST parser such that it recognizes Array data correctly (see #50)
- Revamped documentation such that it is contained within the README file (see #53)
- Fixed setting locators for common EO objects (see 41fbce4)
- Partially rewrote the mutual recursion analyzer for better integration with the
inlining
module (see #37)
- Fixed a bug in
inlining
that caused methods from decorated classes to not be inlined (see 891f4e3) - Made SMT-solver not output information to the console (see bd0d95c)
- Added a new EO AST node (
EOSimpleAppWithLocator
) to store locator information (see f18e026b08) - Added support for locators during parsing (see #28)
- Improved the pretty-printer (see #28)
- Added an algorithm for setting locators in the AST by replacing plain
EOSimpleApp
s withEOSimpleAppWithLocator
s (see #28) - Added an
inlining
module that allows all calls in the object to be inlined (see #30) - Made it possible to derive logical expressions from EO AST (see #32)
- Added a polystat facade for the unjustified assumption analyzer (see 5fc07ff)
- Added documentation to mutual recursion analyzer (see #24);