Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AnalyzeDefinition()

static void System.Xml.Xsl.IlGen.TailCallAnalyzer.AnalyzeDefinition ( QilNode nd)
inlinestaticprivate

Definition at line 18 of file TailCallAnalyzer.cs.

19 {
20 switch (nd.NodeType)
21 {
22 case QilNodeType.Invoke:
23 if (XmlILConstructInfo.Read(nd).ConstructMethod == XmlILConstructMethod.Writer)
24 {
25 OptimizerPatterns.Write(nd).AddPattern(OptimizerPatternName.TailCall);
26 }
27 break;
28 case QilNodeType.Loop:
29 {
31 if (qilLoop.Variable.NodeType == QilNodeType.Let || !qilLoop.Variable.Binding.XmlType.MaybeMany)
32 {
34 }
35 break;
36 }
37 case QilNodeType.Sequence:
38 {
40 if (qilList.Count > 0)
41 {
43 }
44 break;
45 }
46 case QilNodeType.Choice:
47 {
49 for (int i = 0; i < qilChoice.Branches.Count; i++)
50 {
51 AnalyzeDefinition(qilChoice.Branches[i]);
52 }
53 break;
54 }
55 case QilNodeType.Conditional:
56 {
60 break;
61 }
62 case QilNodeType.Nop:
64 break;
65 }
66 }
static void AnalyzeDefinition(QilNode nd)

References System.Xml.Xsl.IlGen.TailCallAnalyzer.AnalyzeDefinition(), System.Xml.Dictionary, System.Xml.Xsl.IlGen.XmlILConstructInfo.Read(), and System.Xml.Xsl.IlGen.OptimizerPatterns.Write().

Referenced by System.Xml.Xsl.IlGen.TailCallAnalyzer.Analyze(), and System.Xml.Xsl.IlGen.TailCallAnalyzer.AnalyzeDefinition().