private bool ArePredecessorsLegal(ILogicalConstruct node, HashSet <ILogicalConstruct> allowedPredecessors) { V_0 = node.get_SameParentPredecessors().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = (ILogicalConstruct)V_0.get_Current(); if (allowedPredecessors.Contains(V_1)) { continue; } V_2 = false; goto Label1; } goto Label0; } finally { ((IDisposable)V_0).Dispose(); } Label1: return(V_2); Label0: return(true); }
private bool CanBeInLoop(ILogicalConstruct node, ICollection <ILogicalConstruct> nodesInLoop, ILogicalConstruct loopHeader) { if (node == null) { return(false); } if (node == loopHeader) { return(true); } V_0 = node.get_SameParentPredecessors().GetEnumerator(); try { while (V_0.MoveNext()) { V_1 = V_0.get_Current() as ILogicalConstruct; if (V_1 != null) { if (nodesInLoop.Contains(V_1) && !this.removedEdges.TryGetValue(V_1, out V_2) || !V_2.Contains(node)) { continue; } V_3 = false; goto Label1; } else { V_3 = false; goto Label1; } } goto Label0; } finally { ((IDisposable)V_0).Dispose(); } Label1: return(V_3); Label0: return(true); }
private IEnumerable <ILogicalConstruct> GetNodePredecessors(ILogicalConstruct node) { V_0 = new HashSet <ILogicalConstruct>(); V_1 = node.get_SameParentPredecessors().GetEnumerator(); try { while (V_1.MoveNext()) { V_2 = (ILogicalConstruct)V_1.get_Current(); if (this.removedEdges.ContainsKey(V_2) && this.removedEdges.get_Item(V_2).Contains(node)) { continue; } V_0.Add(V_2); } } finally { ((IDisposable)V_1).Dispose(); } return(V_0); }