/// <summary>
        /// Creates the control-flow graph nodes of the
        /// specified method summary.
        /// </summary>
        /// <param name="dfg">DataFlowGraph</param>
        /// <param name="summary">MethodSummary</param>
        /// <returns>IDataFlowNode</returns>
        internal static IDataFlowNode Create(DataFlowGraph dfg, MethodSummary summary)
        {
            var entryNode = new DataFlowNode(dfg, summary.ControlFlowGraph.EntryNode, summary);

            entryNode.Construct(summary.ControlFlowGraph.EntryNode, null,
                                new Dictionary <IControlFlowNode, DataFlowNode>());
            return(entryNode);
        }
        /// <summary>
        /// Builds the summary.
        /// </summary>
        private void BuildSummary()
        {
            this.ControlFlowGraph = new ControlFlowGraph(this);

            var dataFlowGraph = new DataFlowGraph(this);

            this.DataFlowGraph    = dataFlowGraph;
            this.DataFlowAnalysis = dataFlowGraph;
        }