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

◆ VisitNegate()

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

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

Definition at line 796 of file XmlILOptimizerVisitor.cs.

797 {
799 if (this[XmlILOptimization.FoldNone] && (object)qilNode.XmlType == XmlQueryTypeFactory.None && AllowReplace(XmlILOptimization.FoldNone, local0))
800 {
801 return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(qilNode)));
802 }
803 if (this[XmlILOptimization.EliminateNegate] && qilNode.NodeType == QilNodeType.LiteralDecimal)
804 {
805 decimal num = (decimal)((QilLiteral)qilNode).Value;
806 if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
807 {
808 return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDecimal(f.LiteralDecimal(-num)));
809 }
810 }
811 if (this[XmlILOptimization.EliminateNegate] && qilNode.NodeType == QilNodeType.LiteralDouble)
812 {
813 double num2 = (double)((QilLiteral)qilNode).Value;
814 if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
815 {
816 return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDouble(f.LiteralDouble(0.0 - num2)));
817 }
818 }
819 if (this[XmlILOptimization.EliminateNegate] && qilNode.NodeType == QilNodeType.LiteralInt32)
820 {
821 int num3 = (int)((QilLiteral)qilNode).Value;
822 if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
823 {
825 }
826 }
827 if (this[XmlILOptimization.EliminateNegate] && qilNode.NodeType == QilNodeType.LiteralInt64)
828 {
829 long num4 = (long)((QilLiteral)qilNode).Value;
830 if (AllowReplace(XmlILOptimization.EliminateNegate, local0))
831 {
833 }
834 }
835 return NoReplace(local0);
836 }
bool AllowReplace(XmlILOptimization pattern, QilNode original)
override QilNode VisitNop(QilUnary local0)
QilLiteral LiteralDecimal(decimal value)
QilLiteral LiteralInt32(int value)
QilLiteral LiteralDouble(double value)
QilUnary Nop(QilNode child)
QilLiteral LiteralInt64(long value)
override QilNode VisitLiteralInt64(QilLiteral n)
override QilNode VisitLiteralDouble(QilLiteral n)
override QilNode VisitLiteralDecimal(QilLiteral n)
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.LiteralDecimal(), System.Xml.Xsl.Qil.QilFactory.LiteralDouble(), System.Xml.Xsl.Qil.QilFactory.LiteralInt32(), System.Xml.Xsl.Qil.QilFactory.LiteralInt64(), System.Xml.Xsl.XmlQueryTypeFactory.None, System.Xml.Xsl.Qil.QilFactory.Nop(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.NoReplace(), System.Xml.Replace, System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralDecimal(), System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralDouble(), System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralInt32(), System.Xml.Xsl.Qil.QilPatternVisitor.VisitLiteralInt64(), and System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitNop().