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

VisitAdd() protected method

protected VisitAdd ( QilBinary local0 ) : QilNode
local0 System.Xml.Xsl.Qil.QilBinary
return QilNode
        protected override QilNode VisitAdd(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.EliminateAdd]) {
                if ( IsLiteral((local1)) ) {
                    if (( IsLiteral((local2)) ) && ( CanFoldArithmetic(QilNodeType.Add, (QilLiteral) local1, (QilLiteral) local2) )) {
                        if (AllowReplace(XmlILOptimization.EliminateAdd, local0)) {
                            return Replace(XmlILOptimization.EliminateAdd, local0,  FoldArithmetic(QilNodeType.Add, (QilLiteral) local1, (QilLiteral) local2) );
                        }
                    }
                }
            }
            if (this[XmlILOptimization.NormalizeAddLiteral]) {
                if ( IsLiteral((local1)) ) {
                    if (!( IsLiteral((local2)) )) {
                        if (AllowReplace(XmlILOptimization.NormalizeAddLiteral, local0)) {
                            return Replace(XmlILOptimization.NormalizeAddLiteral, local0, VisitAdd(f.Add(local2, local1)));
                        }
                    }
                }
            }
            return NoReplace(local0);
        }
        
XmlILOptimizerVisitor