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

◆ VisitStrLength()

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

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

Definition at line 941 of file XmlILOptimizerVisitor.cs.

942 {
944 if (this[XmlILOptimization.FoldNone] && (object)qilNode.XmlType == XmlQueryTypeFactory.None && AllowReplace(XmlILOptimization.FoldNone, local0))
945 {
946 return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(qilNode)));
947 }
948 if (this[XmlILOptimization.EliminateStrLength] && qilNode.NodeType == QilNodeType.LiteralString)
949 {
950 string text = (string)((QilLiteral)qilNode).Value;
951 if (AllowReplace(XmlILOptimization.EliminateStrLength, local0))
952 {
953 return Replace(XmlILOptimization.EliminateStrLength, local0, VisitLiteralInt32(f.LiteralInt32(text.Length)));
954 }
955 }
956 return NoReplace(local0);
957 }
bool AllowReplace(XmlILOptimization pattern, QilNode original)
override QilNode VisitNop(QilUnary local0)
QilLiteral LiteralInt32(int value)
QilUnary Nop(QilNode child)
override QilNode VisitLiteralInt32(QilLiteral n)

References System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.AllowReplace(), System.Xml.Dictionary, System.Xml.Xsl.Qil.QilReplaceVisitor.f, System.Xml.Xsl.Qil.QilFactory.LiteralInt32(), System.Xml.Xsl.XmlQueryTypeFactory.None, System.Xml.Xsl.Qil.QilFactory.Nop(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.NoReplace(), System.Xml.Replace, System.text, System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralInt32(), and System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitNop().