[ContractClassFor(typeof(IEnumerable))] internal abstract class IEnumerableContract : IEnumerable { // Methods protected IEnumerableContract() { } [return: Fresh] [Escapes(true, false), Pure, GlobalAccess(false)] public IEnumerator GetEnumerator() { IEnumerator enumerator; Contract.Ensures((bool)(Contract.Result() != null), null, "Contract.Result() != null"); Contract.Ensures((bool)(Contract.Result().Model == this.Model), null, "Contract.Result().Model == this.Model"); Contract.Ensures((bool)(Contract.Result().CurrentIndex == -1), null, "Contract.Result().CurrentIndex == -1"); return enumerator; } // Properties public object[] Model { get { object[] objArray; Contract.Ensures((bool)(Contract.Result() != null), null, "Contract.Result() != null"); return objArray; } } } [ContractClassFor(typeof(IEnumerator))] internal abstract class IEnumeratorContract : IEnumerator { // Methods protected IEnumeratorContract() { } public bool MoveNext() { bool flag; Contract.Ensures((bool)(this.Model == Contract.OldValue(this.Model)), null, "this.Model == Contract.OldValue(this.Model)"); Contract.Ensures((bool)(this.CurrentIndex < this.Model.Length), null, "this.CurrentIndex < this.Model.Length"); Contract.Ensures((bool)(this.CurrentIndex >= 0), null, "this.CurrentIndex >= 0"); Contract.Ensures((bool)(this.CurrentIndex == (Contract.OldValue(this.CurrentIndex) + 1)), null, "this.CurrentIndex == Contract.OldValue(this.CurrentIndex) + 1"); return flag; } public void Reset() { } // Properties public object Current { get { object obj2; Contract.Ensures((bool)(Contract.Result() == this.Model[this.CurrentIndex]), null, "Contract.Result() == this.Model[this.CurrentIndex]"); return obj2; } } public int CurrentIndex { get { int num; return num; } } public object[] Model { get { object[] objArray; return objArray; } } }