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

◆ VisitPositionOf()

override QilNode System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitPositionOf ( QilUnary local0)
inlineprotectedvirtual

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

Definition at line 409 of file XmlILOptimizerVisitor.cs.

410 {
412 if (this[XmlILOptimization.EliminatePositionOf] && qilNode.NodeType != QilNodeType.For && AllowReplace(XmlILOptimization.EliminatePositionOf, local0))
413 {
414 return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
415 }
416 if (this[XmlILOptimization.EliminatePositionOf] && qilNode.NodeType == QilNodeType.For)
417 {
419 if (qilNode2.XmlType.IsSingleton && AllowReplace(XmlILOptimization.EliminatePositionOf, local0))
420 {
421 return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
422 }
423 }
424 if (this[XmlILOptimization.AnnotatePositionalIterator] && AllowReplace(XmlILOptimization.AnnotatePositionalIterator, local0))
425 {
426 OptimizerPatterns.Write(qilNode).AddPattern(OptimizerPatternName.IsPositional);
427 }
428 return NoReplace(local0);
429 }
bool AllowReplace(XmlILOptimization pattern, QilNode original)
QilLiteral LiteralInt32(int value)
override QilNode VisitLiteralInt32(QilLiteral n)

References System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.AllowReplace(), System.Xml.Xsl.Qil.QilReplaceVisitor.f, System.Xml.Xsl.Qil.QilFactory.LiteralInt32(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.NoReplace(), System.Xml.Replace, System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralInt32(), and System.Xml.Xsl.IlGen.OptimizerPatterns.Write().