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

VisitPositionOf() protected method

protected VisitPositionOf ( QilUnary local0 ) : QilNode
local0 System.Xml.Xsl.Qil.QilUnary
return QilNode
        protected override QilNode VisitPositionOf(QilUnary local0) {
            QilNode local1 = local0[0];
            if (this[XmlILOptimization.EliminatePositionOf]) {
                if (!( (local1).NodeType == QilNodeType.For )) {
                    if (AllowReplace(XmlILOptimization.EliminatePositionOf, local0)) {
                        return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
                    }
                }
            }
            if (this[XmlILOptimization.EliminatePositionOf]) {
                if (local1.NodeType == QilNodeType.For) {
                    QilNode local2 = local1[0];
                    if ( ( (local2).XmlType ).IsSingleton ) {
                        if (AllowReplace(XmlILOptimization.EliminatePositionOf, local0)) {
                            return Replace(XmlILOptimization.EliminatePositionOf, local0, VisitLiteralInt32(f.LiteralInt32(1)));
                        }
                    }
                }
            }
            if (this[XmlILOptimization.AnnotatePositionalIterator]) {
                if (AllowReplace(XmlILOptimization.AnnotatePositionalIterator, local0)) {
                     OptimizerPatterns.Write((QilNode) (local1)).AddPattern(OptimizerPatternName.IsPositional);  }
            }
            return NoReplace(local0);
        }
        
XmlILOptimizerVisitor