Browse Source

Failing test with explicit indexer implementation

newNRvisualizers
erikkallen 14 years ago
parent
commit
4d868ba2b3
  1. 7
      ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs
  2. 9
      ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs

7
ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs

@ -264,4 +264,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.TestCase @@ -264,4 +264,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.TestCase
public int this[string x] { get { return 0; } set {} }
public int this[int x, int y] { get { return 0; } set {} }
}
public class ClassThatImplementsIndexersExplicitly : IInterfaceWithIndexers, IGenericInterfaceWithIndexer<int> {
int IInterfaceWithIndexers.this[int x] { get { return 0; } set {} }
int IGenericInterfaceWithIndexer<int>.this[int x] { get { return 0; } set {} }
int IInterfaceWithIndexers.this[string x] { get { return 0; } set {} }
int IInterfaceWithIndexers.this[int x, int y] { get { return 0; } set {} }
}
}

9
ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs

@ -885,5 +885,14 @@ namespace ICSharpCode.NRefactory.TypeSystem @@ -885,5 +885,14 @@ namespace ICSharpCode.NRefactory.TypeSystem
Assert.That(ix3.Setter.ImplementedInterfaceMembers.Select(p => p.ReflectionName).ToList(), Is.EqualTo(new[] { "ICSharpCode.NRefactory.TypeSystem.TestCase.IInterfaceWithIndexers.set_Item" }));
Assert.That(ix3.Setter.ImplementedInterfaceMembers.All(m => ((IMethod)m).Parameters.Select(p => p.Type.GetDefinition().KnownTypeCode).SequenceEqual(new[] { KnownTypeCode.Int32, KnownTypeCode.Int32, KnownTypeCode.Int32 })));
}
[Test]
public void ExplicitIndexerImplementationReturnsTheCorrectMembers() {
ITypeDefinition type = GetTypeDefinition(typeof(ClassThatImplementsIndexersExplicitly));
Assert.That(type.Properties.All(p => p.ImplementedInterfaceMembers.Count == 1));
Assert.That(type.Properties.All(p => p.Getter.ImplementedInterfaceMembers.Count == 1));
Assert.That(type.Properties.All(p => p.Setter.ImplementedInterfaceMembers.Count == 1));
}
}
}

Loading…
Cancel
Save