public void RegisterConstructorCall(MethodDescriptor callee, IList <PropGraphNodeDescriptor> arguments, VariableNode lhs, AnalysisCallNode callNode) { Contract.Requires(callee != null); Contract.Requires(callNode != null); Contract.Requires(arguments != null); //var argumentValues = arguments.Select(a => a!=null?worker.GetTypes(a):new HashSet<Type>()); var callExp = new MethodCallInfo(this.Method, callNode, callee, lhs, arguments, lhs, true); PropagationGraph.AddCall(callExp, callNode); PropagationGraph.AddToWorkList(callNode); foreach (var argument in arguments) { if (argument != null) { PropagationGraph.AddEdge(argument, callNode); } } }