Exemple #1
0
			public static void AddEdge(StaticInclusion/*!*/ inclusion)
			{
				if (!DrawGraph) return;

				output.Write(sourceUnits[inclusion.Includer.SourceUnit]);
				output.Write(" -> ");
				if (inclusion.Includee is ScriptCompilationUnit)
					output.Write(sourceUnits[((ScriptCompilationUnit)inclusion.Includee).SourceUnit]);
				else
					output.Write("ReflectedUnit");
				output.Write(" [label={0}{1}];", edgeId++, (inclusion.IsConditional) ? ", style=dotted" : "");
				output.WriteLine();
				output.Flush();
			}
Exemple #2
0
        /// <summary>
        /// Minimal fixpoint algorithm.
        /// </summary>
        private void ProcessPendingInclusions()
        {
            while (pendingInclusions.Count > 0)
            {
                StaticInclusion inclusion = pendingInclusions[pendingInclusions.Count - 1];
                pendingInclusions.RemoveAt(pendingInclusions.Count - 1);

                Debug.Assert(inclusion.Includer.State == CompilationUnit.States.Processed);
                Debug.Assert(inclusion.Includee.State == CompilationUnit.States.Processed);

                if (inclusion.Includer.MergeTables(inclusion) > 0)
                {
                    foreach (StaticInclusion incoming in inclusion.Includer.Includers)
                    {
                        pendingInclusions.Add(incoming);
                    }
                }
            }
        }
Exemple #3
0
		internal void EdgeAdded(StaticInclusion/*!*/ staticInclusion)
		{
			Statistics.Inclusions.AddEdge(staticInclusion);
		}
Exemple #4
0
 internal void EdgeAdded(StaticInclusion /*!*/ staticInclusion)
 {
     Statistics.Inclusions.AddEdge(staticInclusion);
 }