1
// Copyright (c) 2010-2013 AlphaSierraPapa for the SharpDevelop Team
3
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
4
// software and associated documentation files (the "Software"), to deal in the Software
5
// without restriction, including without limitation the rights to use, copy, modify, merge,
6
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
7
// to whom the Software is furnished to do so, subject to the following conditions:
9
// The above copyright notice and this permission notice shall be included in all copies or
10
// substantial portions of the Software.
12
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
13
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
15
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
16
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
17
// DEALINGS IN THE SOFTWARE.
20
using System.Collections;
21
using System.Collections.Generic;
22
using System.Collections.ObjectModel;
24
namespace ICSharpCode.NRefactory
27
public sealed class EmptyList<T> : IList<T>, IEnumerator<T>
32
public static readonly EmptyList<T> Instance = new EmptyList<T>();
34
private EmptyList() {}
36
public T this[int index] {
37
get { throw new ArgumentOutOfRangeException("index"); }
38
set { throw new ArgumentOutOfRangeException("index"); }
45
bool ICollection<T>.IsReadOnly {
49
int IList<T>.IndexOf(T item)
54
void IList<T>.Insert(int index, T item)
56
throw new NotSupportedException();
59
void IList<T>.RemoveAt(int index)
61
throw new NotSupportedException();
64
void ICollection<T>.Add(T item)
66
throw new NotSupportedException();
69
void ICollection<T>.Clear()
73
bool ICollection<T>.Contains(T item)
78
void ICollection<T>.CopyTo(T[] array, int arrayIndex)
82
bool ICollection<T>.Remove(T item)
87
IEnumerator<T> IEnumerable<T>.GetEnumerator()
92
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
97
T IEnumerator<T>.Current {
98
get { return default(T); }
101
object IEnumerator.Current {
102
get { return default(T); }
105
void IDisposable.Dispose()
109
bool IEnumerator.MoveNext()
114
void IEnumerator.Reset()