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.
Please register or sign in to comment