System.Xml.Xsl.IlGen.XmlILOptimizerVisitor.VisitLt C# (CSharp) Method

VisitLt() protected method

protected VisitLt ( QilBinary local0 ) : QilNode
local0 System.Xml.Xsl.Qil.QilBinary
return QilNode
        protected override QilNode VisitLt(QilBinary local0) {
            QilNode local1 = local0[0];
            QilNode local2 = local0[1];
            if (this[XmlILOptimization.FoldNone]) {
                if ( (object) ( (local1).XmlType ) == (object) XmlQueryTypeFactory.None ) {
                    if (AllowReplace(XmlILOptimization.FoldNone, local0)) {
                        return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
                    }
                }
            }
            if (this[XmlILOptimization.FoldNone]) {
                if ( (object) ( (local2).XmlType ) == (object) XmlQueryTypeFactory.None ) {
                    if (AllowReplace(XmlILOptimization.FoldNone, local0)) {
                        return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local2)));
                    }
                }
            }
            if (this[XmlILOptimization.EliminateLt]) {
                if ( IsLiteral((local1)) ) {
                    if ( IsLiteral((local2)) ) {
                        if (AllowReplace(XmlILOptimization.EliminateLt, local0)) {
                            return Replace(XmlILOptimization.EliminateLt, local0,  FoldComparison(QilNodeType.Lt, local1, local2) );
                        }
                    }
                }
            }
            if (this[XmlILOptimization.NormalizeLtLiteral]) {
                if ( IsLiteral((local1)) ) {
                    if (!( IsLiteral((local2)) )) {
                        if (AllowReplace(XmlILOptimization.NormalizeLtLiteral, local0)) {
                            return Replace(XmlILOptimization.NormalizeLtLiteral, local0, VisitGt(f.Gt(local2, local1)));
                        }
                    }
                }
            }
            if (this[XmlILOptimization.NormalizeXsltConvertLt]) {
                if (local1.NodeType == QilNodeType.XsltConvert) {
                    QilNode local3 = local1[0];
                    QilNode local4 = local1[1];
                    if (local4.NodeType == QilNodeType.LiteralType) {
                        XmlQueryType local5 = (XmlQueryType)((QilLiteral)local4).Value;
                        if (( IsPrimitiveNumeric( (local3).XmlType ) ) && ( IsPrimitiveNumeric(local5) )) {
                            if (( IsLiteral((local2)) ) && ( CanFoldXsltConvertNonLossy(local2,  (local3).XmlType ) )) {
                                if (AllowReplace(XmlILOptimization.NormalizeXsltConvertLt, local0)) {
                                    return Replace(XmlILOptimization.NormalizeXsltConvertLt, local0, VisitLt(f.Lt(local3,  FoldXsltConvert(local2,  (local3).XmlType ) )));
                                }
                            }
                        }
                    }
                }
            }
            if (this[XmlILOptimization.AnnotateMaxLengthLt]) {
                if (local1.NodeType == QilNodeType.Length) {
                    if (local2.NodeType == QilNodeType.LiteralInt32) {
                        int local4 = (int)((QilLiteral)local2).Value;
                        if (AllowReplace(XmlILOptimization.AnnotateMaxLengthLt, local0)) {
                             OptimizerPatterns.Write((QilNode) (local1)).AddPattern(OptimizerPatternName.MaxPosition);  OptimizerPatterns.Write((QilNode) (local1)).AddArgument(OptimizerPatternArgument.MaxPosition, local4);  }
                    }
                }
            }
            return NoReplace(local0);
        }
        
XmlILOptimizerVisitor