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);
}