/// <summary> /// Constructs a new basic block enumerator. /// </summary> /// <param name="blocks">The parent blocks.</param> internal Enumerator(ImmutableArray <BasicBlock> blocks) { blockEnumerator = new BasicBlockCollection <TOrder, TDirection> .Enumerator( blocks); // There must be at least a single block blockEnumerator.MoveNext(); valueEnumerator = blockEnumerator.Current.GetEnumerator(); }
public bool MoveNext() { while (true) { if (valueEnumerator.MoveNext()) { return(true); } // Try to move to the next function if (!blockEnumerator.MoveNext()) { return(false); } valueEnumerator = blockEnumerator.Current.GetEnumerator(); } }