diff --git a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj index 5af3b8fab..8ca93f491 100644 --- a/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj +++ b/ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj @@ -325,6 +325,7 @@ + diff --git a/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs b/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs index 991c59cae..ed8488fa4 100644 --- a/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs +++ b/ICSharpCode.Decompiler.Tests/PdbGenerationTestRunner.cs @@ -43,6 +43,13 @@ namespace ICSharpCode.Decompiler.Tests TestGeneratePdb(); } + [Test] + [Ignore("Duplicate sequence points for local function")] + public void Members() + { + TestGeneratePdb(); + } + [Test] public void CustomPdbId() { @@ -155,7 +162,7 @@ namespace ICSharpCode.Decompiler.Tests ProcessXmlFile(expectedFileName); string generatedFileName = Path.ChangeExtension(xmlFile, ".generated.xml"); ProcessXmlFile(generatedFileName); - Assert.AreEqual(Normalize(expectedFileName), Normalize(generatedFileName)); + CodeAssert.AreEqual(Normalize(expectedFileName), Normalize(generatedFileName)); } private (string peFileName, string pdbFileName) CompileTestCase(string testName) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/PdbGen/Members.xml b/ICSharpCode.Decompiler.Tests/TestCases/PdbGen/Members.xml new file mode 100644 index 000000000..8e25eed1c --- /dev/null +++ b/ICSharpCode.Decompiler.Tests/TestCases/PdbGen/Members.xml @@ -0,0 +1,95 @@ + + + + + 42; + + private int Property + { + get + { + return 0; + } + set + { + } + } + + private C this[int index] => null; + + private C this[string s] + { + get + { + return null; + } + set + { + } + } + + public event Action Event + { + add + { + } + remove + { + } + } + + public static implicit operator C(int i) + { + return null; + } + + static C() + { + } + + public C() + { + Console.WriteLine(); + } + + ~C() + { + } + + void IDisposable.Dispose() + { + } + + private static void Main() + { + C c = new C(); + + c.Event += delegate + { + }; + _ = c.Property; + _ = c.ExpressionProperty; + _ = c[0]; + _ = c[""]; + + _ = (C)1; + + Local(); + + static void Local() + { + Console.WriteLine(); + } + } +} +]]> + + + + + + \ No newline at end of file