diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Parser/GeneralScope/TypeDeclarationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Parser/GeneralScope/TypeDeclarationTests.cs index 8748164503..19183532c8 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Parser/GeneralScope/TypeDeclarationTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Parser/GeneralScope/TypeDeclarationTests.cs @@ -272,5 +272,14 @@ public abstract class MyClass : MyBase, Interface1, My.Test.Interface2 Assert.AreEqual("N", ns.Name); Assert.AreEqual("MyClass", ((TypeDeclaration)ns.Members.Single()).Name); } + + [Test] + public void EnumWithInitializer() + { + TypeDeclaration td = ParseUtilCSharp.ParseGlobal("enum MyEnum { Val1 = 10 }"); + EnumMemberDeclaration member = (EnumMemberDeclaration)td.Members.Single(); + Assert.AreEqual("Val1", member.Name); + Assert.AreEqual(10, ((PrimitiveExpression)member.Initializer).Value); + } } } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs index db7de9560b..f81a7f2d9f 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs @@ -171,7 +171,7 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver protected T Resolve(string code) where T : ResolveResult { ResolveResult rr = Resolve(code); - Assert.IsInstanceOf(typeof(T), rr); + Assert.IsTrue(rr is T, "Resolve should be " + typeof(T).Name + ", but was " + (rr != null ? rr.GetType().Name : "null")); return (T)rr; } diff --git a/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj b/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj index 6d351a08af..3473ad67f3 100644 --- a/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj +++ b/ICSharpCode.NRefactory.Tests/ICSharpCode.NRefactory.Tests.csproj @@ -49,7 +49,7 @@ - ..\lib\nunit.framework.dll + ..\..\Mono.Cecil\Test\libs\nunit-2.4.8\nunit.framework.dll diff --git a/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs b/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs index a056c8ba16..0d51ded39e 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/CSharpParser.cs @@ -369,17 +369,15 @@ namespace ICSharpCode.NRefactory.CSharp public override void Visit (EnumMember em) { EnumMemberDeclaration newField = new EnumMemberDeclaration (); - VariableInitializer variable = new VariableInitializer (); - - variable.AddChild (new Identifier (em.Name, Convert (em.Location)), AstNode.Roles.Identifier); + // TODO: attributes, 'new' modifier + newField.AddChild (new Identifier (em.Name, Convert (em.Location)), AstNode.Roles.Identifier); if (em.Initializer != null) { var initializer = (Expression)em.Initializer.Accept (this); if (initializer != null) - variable.AddChild (initializer, EnumMemberDeclaration.InitializerRole); + newField.AddChild (initializer, EnumMemberDeclaration.InitializerRole); } - newField.AddChild (variable, AstNode.Roles.Variable); typeStack.Peek ().AddChild (newField, TypeDeclaration.MemberRole); } #endregion