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

AllowDodReverse() private method

True if the DodReverse pattern is allowed to match the specified node.
private AllowDodReverse ( QilNode nd ) : bool
nd QilNode
return bool
        private bool AllowDodReverse(QilNode nd) {
            OptimizerPatterns patt = OptimizerPatterns.Read(nd);

            // AllowDodReverse if this pattern is the ancestor, ancestor-or-self, preceding, or preceding-sibling axis,
            // filtered by either an element name or a node kind test.
            if (patt.MatchesPattern(OptimizerPatternName.Axis) ||
                patt.MatchesPattern(OptimizerPatternName.FilterElements) ||
                patt.MatchesPattern(OptimizerPatternName.FilterContentKind)) {
                if (IsStepPattern(patt, QilNodeType.Ancestor) || IsStepPattern(patt, QilNodeType.AncestorOrSelf) ||
                    IsStepPattern(patt, QilNodeType.XPathPreceding) || IsStepPattern(patt, QilNodeType.PrecedingSibling)) {
                    return true;
                }
            }
            return false;
        }
XmlILOptimizerVisitor