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

◆ VisitConditional()

override QilNode System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitConditional ( QilTernary local0)
inlineprotectedvirtual

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

Definition at line 511 of file XmlILOptimizerVisitor.cs.

512 {
516 if (this[XmlILOptimization.FoldNone] && (object)qilNode.XmlType == XmlQueryTypeFactory.None && AllowReplace(XmlILOptimization.FoldNone, local0))
517 {
518 return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(qilNode)));
519 }
520 if (this[XmlILOptimization.EliminateConditional] && qilNode.NodeType == QilNodeType.True && AllowReplace(XmlILOptimization.EliminateConditional, local0))
521 {
522 return Replace(XmlILOptimization.EliminateConditional, local0, qilNode2);
523 }
524 if (this[XmlILOptimization.EliminateConditional] && qilNode.NodeType == QilNodeType.False && AllowReplace(XmlILOptimization.EliminateConditional, local0))
525 {
526 return Replace(XmlILOptimization.EliminateConditional, local0, qilNode3);
527 }
528 if (this[XmlILOptimization.EliminateConditional] && qilNode2.NodeType == QilNodeType.True && qilNode3.NodeType == QilNodeType.False && AllowReplace(XmlILOptimization.EliminateConditional, local0))
529 {
530 return Replace(XmlILOptimization.EliminateConditional, local0, qilNode);
531 }
532 if (this[XmlILOptimization.EliminateConditional] && qilNode2.NodeType == QilNodeType.False && qilNode3.NodeType == QilNodeType.True && AllowReplace(XmlILOptimization.EliminateConditional, local0))
533 {
534 return Replace(XmlILOptimization.EliminateConditional, local0, VisitNot(f.Not(qilNode)));
535 }
536 if (this[XmlILOptimization.FoldConditionalNot] && qilNode.NodeType == QilNodeType.Not)
537 {
538 QilNode left = qilNode[0];
539 if (AllowReplace(XmlILOptimization.FoldConditionalNot, local0))
540 {
541 return Replace(XmlILOptimization.FoldConditionalNot, local0, VisitConditional(f.Conditional(left, qilNode3, qilNode2)));
542 }
543 }
544 if (this[XmlILOptimization.NormalizeConditionalText] && qilNode2.NodeType == QilNodeType.TextCtor)
545 {
547 if (qilNode3.NodeType == QilNodeType.TextCtor)
548 {
549 QilNode right = qilNode3[0];
550 if (AllowReplace(XmlILOptimization.NormalizeConditionalText, local0))
551 {
552 return Replace(XmlILOptimization.NormalizeConditionalText, local0, VisitTextCtor(f.TextCtor(VisitConditional(f.Conditional(qilNode, center, right)))));
553 }
554 }
555 }
556 return NoReplace(local0);
557 }
override QilNode VisitConditional(QilTernary local0)
override QilNode VisitNot(QilUnary local0)
bool AllowReplace(XmlILOptimization pattern, QilNode original)
override QilNode VisitTextCtor(QilUnary local0)
override QilNode VisitNop(QilUnary local0)
QilTernary Conditional(QilNode left, QilNode center, QilNode right)
QilUnary TextCtor(QilNode child)
QilUnary Nop(QilNode child)
QilUnary Not(QilNode child)

References System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.AllowReplace(), System.Xml.Xsl.Qil.QilFactory.Conditional(), System.Xml.Xsl.Qil.QilReplaceVisitor.f, System.Xml.Xsl.XmlQueryTypeFactory.None, System.Xml.Xsl.Qil.QilFactory.Nop(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.NoReplace(), System.Xml.Xsl.Qil.QilFactory.Not(), System.Xml.Replace, System.Xml.Xsl.Qil.QilFactory.TextCtor(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitConditional(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitNop(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitNot(), and System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitTextCtor().

Referenced by System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitConditional(), System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitFilter(), and System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitTypeAssert().