Browse Source

Fix FileCodeModel.CodeElements returning wrong item at index.

pull/375/head
Matt Ward 12 years ago
parent
commit
32d1bab1f6
  1. 62
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeElementsList.cs

62
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeElementsList.cs

@ -24,14 +24,10 @@ using ICSharpCode.SharpDevelop.Dom; @@ -24,14 +24,10 @@ using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.PackageManagement.EnvDTE
{
public class CodeElementsList<T> : MarshalByRefObject, global::EnvDTE.CodeElements, IList<T>
public class CodeElementsList<T> : MarshalByRefObject, global::EnvDTE.CodeElements
where T : global::EnvDTE.CodeElement
{
List<T> elements = new List<T>();
public CodeElementsList()
{
}
readonly List<T> elements = new List<T>();
public int Count {
get { return elements.Count; }
@ -60,58 +56,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -60,58 +56,16 @@ namespace ICSharpCode.PackageManagement.EnvDTE
return elements.Single(item => item.Name == name);
}
public T this[int index] {
get { return elements[index]; }
set { elements[index] = value; }
}
bool ICollection<T>.IsReadOnly {
get { return false; }
}
public int IndexOf(T item)
{
return elements.IndexOf(item);
}
public void Insert(int index, T item)
{
elements.Insert(index, item);
}
public void RemoveAt(int index)
{
elements.RemoveAt(index);
}
public void Add(T item)
{
elements.Add(item);
}
public void Clear()
internal void Add(T element)
{
elements.Clear();
elements.Add(element);
}
public bool Contains(T item)
internal void AddRange(IEnumerable<T> items)
{
return elements.Contains(item);
}
public void CopyTo(T[] array, int arrayIndex)
{
elements.CopyTo(array, arrayIndex);
}
public bool Remove(T item)
{
return elements.Remove(item);
}
IEnumerator<T> IEnumerable<T>.GetEnumerator()
{
return elements.GetEnumerator();
foreach (T element in items) {
Add(element);
}
}
}
}

Loading…
Cancel
Save