示例#1
0
 public DelegateCallInfo(MethodDescriptor caller, AnalysisCallNode callNode,
                         DelegateVariableNode calleeDelegate, PropGraphNodeDescriptor receiver,
                         IList <PropGraphNodeDescriptor> arguments, VariableNode lhs)
     : base(caller, callNode, receiver, arguments, lhs)
 {
     this.Delegate = calleeDelegate;
 }
示例#2
0
 public MethodCallInfo(MethodDescriptor caller, AnalysisCallNode callNode, MethodDescriptor method,
                       PropGraphNodeDescriptor receiver, IList <PropGraphNodeDescriptor> arguments,
                       VariableNode lhs, bool isConstructor)
     : base(caller, callNode, receiver, arguments, lhs)
 {
     this.IsConstructor = isConstructor;
     this.Method        = method;
 }
示例#3
0
        /// <summary>
        /// The idea is to use the same hash and equals than ANode but also locations
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            AnalysisCallNode analysisCallNode = (obj as AnalysisCallNode);

            return(base.Equals(obj) &&
                   analysisCallNode != null && base.Equals(analysisCallNode) &&
                   analysisCallNode.LocationDescriptor.Equals(this.LocationDescriptor));
        }
示例#4
0
 public ReturnMessageInfo(MethodDescriptor caller, MethodDescriptor callee, ISet <TypeDescriptor> resultPossibleTypes,
                          AnalysisCallNode callNode, VariableNode lhs, PropagationKind propKind)
 {
     this.Caller = caller;
     this.Callee = callee;
     this.LHS    = lhs;
     this.ResultPossibleTypes = resultPossibleTypes;
     this.PropagationKind     = propKind;
     this.CallNode            = callNode;
 }
示例#5
0
 public CallInfo(MethodDescriptor caller, AnalysisCallNode callNode,
                 PropGraphNodeDescriptor receiver, IList <PropGraphNodeDescriptor> arguments, VariableNode lhs)
 {
     this.Caller    = caller;
     this.Arguments = arguments;
     this.LHS       = lhs;
     this.Receiver  = receiver;
     this.CallNode  = callNode;
     this.ArgumentsPossibleTypes = new List <ISet <TypeDescriptor> >();
     this.PossibleCallees        = new HashSet <ResolvedCallee>();
 }
示例#6
0
 public MethodCallInfo(MethodDescriptor caller, AnalysisCallNode callNode,
                       MethodDescriptor method, IList <PropGraphNodeDescriptor> arguments,
                       VariableNode lhs, bool isConstructor)
     : this(caller, callNode, method, null, arguments, lhs, isConstructor)
 {
 }
示例#7
0
 public DelegateCallInfo(MethodDescriptor caller, AnalysisCallNode callNode,
                         DelegateVariableNode @delegate, IList <PropGraphNodeDescriptor> arguments, VariableNode lhs)
     : this(caller, callNode, @delegate, null, arguments, lhs)
 {
 }
示例#8
0
 public CallContext(MethodDescriptor caller, VariableNode lhs, AnalysisCallNode callNode)
 {
     this.Caller   = caller;
     this.LHS      = lhs;
     this.CallNode = callNode;
 }
示例#9
0
 public PropertyVariableNode(string name, TypeDescriptor declaredType,
                             AnalysisCallNode propertyMethod)
     : base(name, declaredType)
 {
     this.ProperyMethod = propertyMethod;
 }
示例#10
0
 public CallMessageInfo(MethodDescriptor caller, MethodDescriptor callee, TypeDescriptor receiverType,
                        IList <ISet <TypeDescriptor> > argumentsPossibleTypes, AnalysisCallNode callNode, VariableNode lhs,
                        PropagationKind propKind)
 {
     this.Caller = caller;
     this.Callee = callee;
     this.ArgumentsPossibleTypes = argumentsPossibleTypes;
     this.ReceiverType           = receiverType;
     this.LHS             = lhs;
     this.PropagationKind = propKind;
     this.CallNode        = callNode;
 }