getSummary method
Gets a human-readable summary of the analysis.
Implementation
String getSummary() {
final buffer = StringBuffer();
buffer.writeln('=== Points-To Analysis Summary ===');
buffer.writeln();
// Variable points-to
buffer.writeln('Variable Points-To:');
final pointsTo = getAllPointsTo();
for (final entry in pointsTo.entries) {
final varName = _varNames[entry.key] ?? 'var${entry.key}';
buffer.writeln(' $varName -> ${entry.value.join(', ')}');
}
buffer.writeln();
// Reachable blocks
buffer.writeln('Reachable Blocks: ${getReachableBlocks().toList()..sort()}');
buffer.writeln();
// Mutability
buffer.writeln('Mutable Objects: ${getMutableObjects()}');
buffer.writeln('Immutable Objects: ${getDeepImmutableObjects()}');
buffer.writeln();
// Call graph
buffer.writeln('Call Graph:');
final callGraph = getCallGraph();
for (final entry in callGraph.entries) {
buffer.writeln(' site ${entry.key} -> ${entry.value.join(', ')}');
}
return buffer.toString();
}