getSummary method

String getSummary()

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();
}