private void AddDependences(AnnotationInstance 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 (!variableDirectlyReferredToByAnnotations.ContainsKey(vd)) { variableDirectlyReferredToByAnnotations[vd] = new HashSet <string>(); } variableDirectlyReferredToByAnnotations[vd].Add(ci.AnnotationIdentifier); foreach (var w in varDepAnalyser.DependsOn(vd)) { annotationDependsOn[ci.AnnotationIdentifier].Add(w); } } }
private void AddDependences(AnnotationInstance 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 (!variableDirectlyReferredToByAnnotations.ContainsKey(vd)) { variableDirectlyReferredToByAnnotations[vd] = new HashSet<string>(); } variableDirectlyReferredToByAnnotations[vd].Add(ci.AnnotationIdentifier); foreach (var w in varDepAnalyser.DependsOn(vd)) { annotationDependsOn[ci.AnnotationIdentifier].Add(w); } } }