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

VisitSequence() protected method

protected VisitSequence ( QilList local0 ) : QilNode
local0 System.Xml.Xsl.Qil.QilList
return QilNode
        protected override QilNode VisitSequence(QilList local0) {
            if (( (local0).Count == (1) ) && (this[XmlILOptimization.EliminateSequence])) {
                if (AllowReplace(XmlILOptimization.EliminateSequence, local0)) {
                    return Replace(XmlILOptimization.EliminateSequence, local0,  (QilNode) (local0)[0] );
                }
            }
            if (( HasNestedSequence(local0) ) && (this[XmlILOptimization.NormalizeNestedSequences])) {
                if (AllowReplace(XmlILOptimization.NormalizeNestedSequences, local0)) {
                    QilNode local1 = VisitSequence(f.Sequence());
                    
    foreach (QilNode nd in local0) {
        if (nd.NodeType == QilNodeType.Sequence)
            local1.Add((IList<QilNode>) nd);
        else
            local1.Add(nd);
    }

    // Match patterns on new sequence
    local1 = VisitSequence((QilList) local1);
return Replace(XmlILOptimization.NormalizeNestedSequences, local0, local1);
                }
            }
            return NoReplace(local0);
        }
        
XmlILOptimizerVisitor