private bool IsInterestingCall(Method m) { bool res = true; bool isInModule = methodsFinder != null?methodsFinder.IsInCurrenModule(m) : currentPTWE.IsInCurrenModule(m); res = res && isInModule; res = res && !m.Name.Name.Equals("set_Item"); res = res && !m.Name.Name.Equals("get_Item"); res = res && (m.DeclaringType != null & !m.DeclaringType.FullName.StartsWith("Microsoft.Contracts")); Method templateOrMethod = WeakPurityAndWriteEffectsAnalysis.solveMethodTemplate(m); res = res && currentPTWE.IsPossibleAnalyzableMethod(templateOrMethod); return(res); }
internal bool IsInterestingCall(Method m) { bool res = true; // DIEGO-CHECK: Why did I remove this.. //res = res && this.ptwe.IsInCurrenModule(m); res = res && this.IsInCurrenModule(m); res = res && !m.Name.Name.Equals("set_Item"); res = res && !m.Name.Name.Equals("get_Item"); res = res && (m.DeclaringType != null & !m.DeclaringType.FullName.StartsWith("Microsoft.Contracts")); Method templateOrMethod = WeakPurityAndWriteEffectsAnalysis.solveMethodTemplate(m); res = res && this.ptwe.IsPossibleAnalyzableMethod(templateOrMethod); return(res); }
public void AddCall(Method m1, Method m2, Label lb, bool isV) { CGNode m1n = new CGNode(m1); CGNode m2n = new CGNode(m2); AddNode(m1n); AddNode(m2n); calls.AddEdge(m1n, m2n, lb, isV); Method template = WeakPurityAndWriteEffectsAnalysis.solveMethodTemplate(m2); if (!template.Equals(m2)) { CGNode m2T = new CGNode(template); AddNode(m2T); calls.AddEdge(m1n, m2T, lb, isV); } }