private void AddDependences(CandidateInstance ci) { VariableCollector vc = new VariableCollector(); vc.VisitExpr(ci.Expr); foreach (var v in vc.usedVars.Where(Item => varDepAnalyser.VariableRelevantToAnalysis(Item, ci.Proc))) { VariableDescriptor vd = varDepAnalyser.MakeDescriptor(ci.Proc, v); if (!variableDirectlyReferredToByCandidates.ContainsKey(vd)) { variableDirectlyReferredToByCandidates[vd] = new HashSet <string>(); } variableDirectlyReferredToByCandidates[vd].Add(ci.Candidate); foreach (var w in varDepAnalyser.DependsOn(vd)) { candidateDependsOn[ci.Candidate].Add(w); } } }
private void AddDependences(CandidateInstance ci) { VariableCollector vc = new VariableCollector(); vc.VisitExpr(ci.Expr); foreach (var v in vc.usedVars.Where(Item => varDepAnalyser.VariableRelevantToAnalysis(Item, ci.Proc))) { VariableDescriptor vd = varDepAnalyser.MakeDescriptor(ci.Proc, v); if (!variableDirectlyReferredToByCandidates.ContainsKey(vd)) { variableDirectlyReferredToByCandidates[vd] = new HashSet<string>(); } variableDirectlyReferredToByCandidates[vd].Add(ci.Candidate); foreach (var w in varDepAnalyser.DependsOn(vd)) { candidateDependsOn[ci.Candidate].Add(w); } } }