First part of the references support for the symbolic engine (without supporting privater fields or sub classes). This PR focuses on extending the symbolic grammar and adding some general structure for the implementation of references in the symbolic engine.
Notes
Private Fields and sub classes will be added at some point in the future
Future PRs
Extend utils for creating reference related statements (probably there's something already done in this part)
Add encoding in the solver side
Translate the symbolic state of the references to the solver's encoding
Complete the test case updater algorithm
Main idea
Instances
Enumerate the instances found along the execution. 0 is reserved for null and 1 for Object.
Types
Enumerate types found during execution. 0 is reserved for Object
Constraints
just == or != between references.
Encoding
Will be added in a future PR
Test case update
Added basic structure for the algorithm to reconstruct the object based on a solution from the solver
Details
First part of the references support for the symbolic engine (without supporting privater fields or sub classes). This PR focuses on extending the symbolic grammar and adding some general structure for the implementation of references in the symbolic engine.
Notes
Future PRs
Main idea
Instances
Enumerate the instances found along the execution. 0 is reserved for null and 1 for Object.
Types
Enumerate types found during execution. 0 is reserved for Object
Constraints
just == or != between references.
Encoding
Test case update
Documentation
Changes
Grammar
Extended grammar for expressing extra elements.
Added reference constraints for equals and not equals.
Instances
Types
Constraints
Results processing
Test Cases