internal DisposeAbstractValue WithNewEscapingOperation(IOperation escapingOperation) { Debug.Assert(Kind != DisposeAbstractValueKind.NotDisposable); Debug.Assert(Kind != DisposeAbstractValueKind.Unknown); var kind = this.Kind > DisposeAbstractValueKind.Escaped ? this.Kind : DisposeAbstractValueKind.Escaped; return(new DisposeAbstractValue(DisposingOrEscapingOperations.Add(escapingOperation), kind)); }
public DisposeAbstractValue WithNewEscapingOperation(IOperation escapingOperation) { Debug.Assert(Kind != DisposeAbstractValueKind.NotDisposable); return(new DisposeAbstractValue(DisposingOrEscapingOperations.Add(escapingOperation), DisposeAbstractValueKind.MaybeDisposed)); }
internal DisposeAbstractValue WithNewDisposingOperation(IOperation disposingOperation) { Debug.Assert(Kind != DisposeAbstractValueKind.NotDisposable); return(new DisposeAbstractValue(DisposingOrEscapingOperations.Add(disposingOperation), DisposeAbstractValueKind.Disposed)); }
public bool Equals(DisposeAbstractValue other) { return(other != null && Kind == other.Kind && DisposingOrEscapingOperations.SetEquals(other.DisposingOrEscapingOperations)); }