265 lines
11 KiB
Plaintext
265 lines
11 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
|
|
using System;
|
|
using Microsoft.Contracts;
|
|
|
|
namespace System.Collections
|
|
{
|
|
|
|
public class ArrayList
|
|
{
|
|
|
|
public object this [int index]
|
|
{
|
|
[Pure]
|
|
get
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index < this.Count otherwise ArgumentOutOfRangeException;
|
|
set
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index < this.Count otherwise ArgumentOutOfRangeException;
|
|
}
|
|
|
|
public int Capacity
|
|
{
|
|
[Pure]
|
|
get
|
|
ensures result >= 0;
|
|
set
|
|
requires value >= this.Count otherwise ArgumentOutOfRangeException;
|
|
}
|
|
|
|
public int Count
|
|
{
|
|
[Pure]
|
|
get
|
|
ensures result >= 0;
|
|
}
|
|
|
|
public object SyncRoot
|
|
{
|
|
[Pure]
|
|
get;
|
|
}
|
|
|
|
public bool IsSynchronized
|
|
{
|
|
[Pure]
|
|
get;
|
|
}
|
|
|
|
public bool IsFixedSize
|
|
{
|
|
[Pure]
|
|
get;
|
|
}
|
|
|
|
public bool IsReadOnly
|
|
{
|
|
[Pure]
|
|
get;
|
|
}
|
|
|
|
public void TrimToSize ()
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public Array! ToArray (Type! type)
|
|
requires type != null otherwise ArgumentNullException;
|
|
|
|
public object[]! ToArray ();
|
|
|
|
public static ArrayList! Synchronized (ArrayList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsSynchronized;
|
|
|
|
public static IList! Synchronized (IList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsSynchronized;
|
|
|
|
public void Sort (int index, int count, IComparer comparer)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public void Sort (IComparer comparer)
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public void Sort ()
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public ArrayList GetRange (int index, int count)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
|
|
public void SetRange (int index, ICollection! c)
|
|
requires c != null otherwise ArgumentNullException;
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + c.Count <= Count otherwise ArgumentOutOfRangeException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public void Reverse (int index, int count)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public void Reverse ()
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
|
|
public static ArrayList Repeat (object value, int count)
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
|
|
public void RemoveRange (int index, int count)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public void RemoveAt (int index)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index < Count otherwise ArgumentOutOfRangeException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public void Remove (object obj)
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public static ArrayList! ReadOnly (ArrayList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsReadOnly;
|
|
|
|
public static IList! ReadOnly (IList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsReadOnly;
|
|
|
|
public int LastIndexOf (object value, int startIndex, int count)
|
|
requires 0 <= count otherwise ArgumentOutOfRangeException;
|
|
requires 0 <= startIndex otherwise ArgumentOutOfRangeException;
|
|
requires startIndex + count <= Count otherwise ArgumentOutOfRangeException;
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int LastIndexOf (object value, int startIndex)
|
|
requires startIndex >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires startIndex < this.Count otherwise ArgumentOutOfRangeException;
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int LastIndexOf (object value)
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public void InsertRange (int index, ICollection! c)
|
|
requires c != null otherwise ArgumentNullException;
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index <= Count otherwise ArgumentOutOfRangeException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public void Insert (int index, object value)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index <= Count otherwise ArgumentOutOfRangeException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public int IndexOf (object value, int startIndex, int count)
|
|
requires 0 <= count otherwise ArgumentOutOfRangeException;
|
|
requires 0 <= startIndex otherwise ArgumentOutOfRangeException;
|
|
requires startIndex + count <= Count otherwise ArgumentOutOfRangeException;
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int IndexOf (object value, int startIndex)
|
|
requires startIndex >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires startIndex < this.Count otherwise ArgumentOutOfRangeException;
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int IndexOf (object value)
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public IEnumerator GetEnumerator (int index, int count)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
|
|
public IEnumerator GetEnumerator ();
|
|
|
|
public static ArrayList FixedSize (ArrayList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsFixedSize;
|
|
|
|
public static IList FixedSize (IList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
ensures result.IsFixedSize;
|
|
|
|
public void CopyTo (int index, Array! array, int arrayIndex, int count)
|
|
requires array != null otherwise ArgumentNullException;
|
|
requires array.Rank == 1 otherwise ArgumentException;
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index < this.Count otherwise ArgumentOutOfRangeException;
|
|
requires arrayIndex >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires arrayIndex < array.Length otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
requires arrayIndex + count <= array.Length otherwise ArgumentException;
|
|
|
|
public void CopyTo (Array! array, int arrayIndex)
|
|
requires array != null otherwise ArgumentNullException;
|
|
requires array.Rank == 1 otherwise ArgumentException;
|
|
requires arrayIndex >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires arrayIndex < this.Count otherwise ArgumentOutOfRangeException;
|
|
|
|
public void CopyTo (Array! array)
|
|
requires array != null otherwise ArgumentNullException;
|
|
requires array.Rank == 1 otherwise ArgumentException;
|
|
|
|
public bool Contains (object item);
|
|
|
|
public object Clone ();
|
|
|
|
public void Clear ()
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public int BinarySearch (object value, IComparer comparer)
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int BinarySearch (object value)
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public int BinarySearch (int index, int count, object value, IComparer comparer)
|
|
requires index >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires count >= 0 otherwise ArgumentOutOfRangeException;
|
|
requires index + count <= Count otherwise ArgumentException;
|
|
ensures -1 <= result && result < this.Count;
|
|
|
|
public void AddRange (ICollection! c)
|
|
requires c != null otherwise ArgumentNullException;
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public int Add (object value)
|
|
requires ! this.IsReadOnly otherwise NotSupportedException;
|
|
requires ! this.IsFixedSize otherwise NotSupportedException;
|
|
|
|
public static ArrayList Adapter (IList! list)
|
|
requires list != null otherwise ArgumentNullException;
|
|
|
|
public ArrayList (ICollection! c)
|
|
requires c != null otherwise ArgumentNullException;
|
|
ensures this.Capacity == c.Count;
|
|
ensures this.Count == c.Count;
|
|
|
|
public ArrayList (int capacity)
|
|
requires capacity >= 0 otherwise ArgumentOutOfRangeException;
|
|
ensures this.Capacity == capacity;
|
|
|
|
public ArrayList ()
|
|
ensures this.Count == 0;
|
|
ensures this.Capacity == 16; // stated in the documentation
|
|
}
|
|
}
|