Skip to content
Commit a81337d6 authored by Carlos Galindo's avatar Carlos Galindo
Browse files

Tree handling of objects, multiple fixes and improvements

* Update tests with better slices.
* GraphNode#addActionsAfterCall uses varargs instead of a set.
* Improved handling of super() and this() calls.
* ImplicitNode is now generic
* Improved interface in JSysCFG to insert new instructions ad-hoc.
* Constructors now have an implicit "return this".
* Removed JSysCFG#getDeclarationClass, ASTUtils has a similar method.
* VariableActions can now store (but don't propagate) a tree of fields acted
  upon.
* VariableActions can now take null as variable, or any possible expression.
* Automatic generation of the actions for fields (USE(a.x) generates USE(a)).
* Conversely, fields now either traverse their scope or declare an action.
* Handling of ThisExpr.
* Better initialization naming for fields.
* Implemented default initialization of fields if none is present.
* InterproceduralActionFinders:
  * Unified the behaviour of #initialValue()
  * Improved generation of actual-in/out for fields.

Caveats:
* InterproceduralActionFinders cannot process VariableActions that don't resolve
  into a ResolvedValueDeclaration. Thus, 'this' must be declared when entering a
  method or constructor declaration.
* Removed type from IO nodes, as it required resolving expressions and was
  unnecessary for the slicer.
parent a2dc36c5
Pipeline #69 passed with stage
in 55 seconds