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

◆ VisitReference()

override QilNode System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitReference ( QilNode oldNode)
inlineprotectedvirtual

Reimplemented from System.Xml.Xsl.Qil.QilVisitor.

Definition at line 236 of file XmlILOptimizerVisitor.cs.

237 {
239 if (qilNode == null)
240 {
242 }
243 if (this[XmlILOptimization.EliminateLiteralVariables] && qilNode != null && (qilNode.NodeType == QilNodeType.Let || qilNode.NodeType == QilNodeType.For))
244 {
245 QilNode binding = ((QilIterator)oldNode).Binding;
246 if (IsLiteral(binding))
247 {
248 return Replace(XmlILOptimization.EliminateLiteralVariables, qilNode, binding.ShallowClone(f));
249 }
250 }
251 if (this[XmlILOptimization.EliminateUnusedGlobals] && IsGlobalValue(qilNode))
252 {
253 OptimizerPatterns.Write(qilNode).AddPattern(OptimizerPatternName.IsReferenced);
254 }
255 return base.VisitReference(qilNode);
256 }

References System.Xml.Xsl.IlGen.XmlILOptimizerVisitor._subs, System.Xml.Dictionary, System.Xml.Xsl.Qil.QilReplaceVisitor.f, System.Xml.Xsl.Qil.SubstitutionList.FindReplacement(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.IsGlobalValue(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.IsLiteral(), System.Xml.Replace, and System.Xml.Xsl.IlGen.OptimizerPatterns.Write().

Referenced by System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.Subs().