From 74adaba0e536e70f51023edb8f18ab8bc9e3b037 Mon Sep 17 00:00:00 2001 From: erikkallen Date: Thu, 7 Jun 2012 22:15:57 +0200 Subject: [PATCH] Test demonstrating problem with nesting anonymous objects. --- .../CSharp/Resolver/AnonymousTypeTests.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AnonymousTypeTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AnonymousTypeTests.cs index 6bed7f5e85..d68b918355 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AnonymousTypeTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AnonymousTypeTests.cs @@ -81,5 +81,20 @@ class Test { Assert.IsInstanceOf(target); Assert.AreEqual(rr.Type, target.Type); } + + [Test] + public void NestingAnonymousTypesShouldWork() + { + string program = @"using System; +class TestClass { + void F() { + var o = $new { a = 0, b = 1, c = new { d = 2, e = 3, f = 4 } }$; + } +}"; + + var result = Resolve(program); + Assert.That(result.Type.GetProperties().Select(p => p.Name), Is.EquivalentTo(new[] { "a", "b", "c" })); + Assert.That(result.Type.GetProperties().Single(p => p.Name == "c").ReturnType.GetProperties().Select(p => p.Name), Is.EquivalentTo(new[] { "d", "e", "f" })); + } } }