fix: give condensations ids to enable modification.
Previously:
- Each condensation (generated with KosarajuStrongConnectivityInspector) was a Graph of Graphs
- The subgraphs could not be modified, as JGraphT relies on hashCode being constant for storage in hash maps and sets.
- We modified the subgraphs, leading to the subgraphs no longer being a part of the condensation graph (cSCRs and intraSCRs).
After the fix:
- Each subgraph has a unique id, in which hashCode and equals rely. Thus, they can be freely modified without issue.
- Previously complex types have been simplified to IntraSCRGraph (condensation of ICFG), IntraSCR (a node of that condensation), CallSCRGraph (condensation of CallGraph), CallSCR (a node of that condensation).
Co-authored-by:
Jonathan Andrade <jandbur@upv.edu.es>