public override void TraceStart(ControlFlowGraphProxy cfg) { this.cfg = cfg; var blocks = cfg.Blocks.ToList(); string?methodName = null; foreach (var block in blocks) { if (block.Block.Operations.FirstOrDefault() is not IOperation op) { continue; } var method = op.Syntax.FirstAncestorOrSelf <MethodDeclarationSyntax> (); if (method is MethodDeclarationSyntax) { methodName = method.Identifier.ValueText; } break; } if (methodName?.Equals(traceMethod) == true) { trace = true; } }
public TrimDataFlowAnalysis(OperationBlockAnalysisContext context, ControlFlowGraph cfg) { ControlFlowGraph = new ControlFlowGraphProxy(cfg); Lattice = new (new ValueSetLattice <SingleValue> ()); Context = context; }