From ad4e732c4cbe3c16ef191c3cf463f1df4eadce93 Mon Sep 17 00:00:00 2001 From: Daniel Cazzulino Date: Thu, 28 Jan 2021 08:58:28 -0300 Subject: [PATCH] Fix indexed property visiting Fixes #22. --- src/NuDoq.Tests/ReaderFixture.cs | 18 ++++++++++++++++++ src/NuDoq/MemberIdMap.cs | 1 + 2 files changed, 19 insertions(+) diff --git a/src/NuDoq.Tests/ReaderFixture.cs b/src/NuDoq.Tests/ReaderFixture.cs index 2837b4f..5251cbb 100644 --- a/src/NuDoq.Tests/ReaderFixture.cs +++ b/src/NuDoq.Tests/ReaderFixture.cs @@ -665,6 +665,17 @@ public void when_reading_with_keep_lines_then_preserves_original_text() lines", method.Elements.OfType().First().Elements.OfType().First().Content); } + [Fact] + public void when_reading_indexer_property_then_succeeds() + { + var member = DocReader.Read(Assembly.GetExecutingAssembly(), new ReaderOptions { KeepNewLinesInText = true }); + var method = member.Elements.OfType() + .FirstOrDefault(m => m.Info?.DeclaringType == typeof(CustomXml) && ((PropertyInfo)m.Info!).GetIndexParameters().Length > 0); + + Assert.NotNull(method); + Assert.Equal("indexed", method.ToText()); + } + class CountingVisitor : Visitor { readonly string platform; @@ -737,6 +748,13 @@ public void Out(out int p1) /// lines /// public string NewLines { get; set; } + + /// indexed + public int this[int index] + { + get => 0; + set => Console.WriteLine(value); + } } } } \ No newline at end of file diff --git a/src/NuDoq/MemberIdMap.cs b/src/NuDoq/MemberIdMap.cs index e2c03dc..3a1a540 100644 --- a/src/NuDoq/MemberIdMap.cs +++ b/src/NuDoq/MemberIdMap.cs @@ -127,6 +127,7 @@ void Append(PropertyInfo property) { AppendType(sb, property.DeclaringType); sb.Append('.').Append(property.Name); + Append(property.GetIndexParameters()); } void Append(MethodInfo method)