From 5dfed88da703125a15f57b1ab12591fae5eb7b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Artur=20Zgodzi=F1ski?= Date: Wed, 23 Feb 2011 09:40:26 +0100 Subject: [PATCH] Removed redundant int base type of enum. --- .../CSharp/OutputVisitor/OutputVisitor.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs index 933a7f9a18..8c5911e706 100644 --- a/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs +++ b/ICSharpCode.NRefactory/CSharp/OutputVisitor/OutputVisitor.cs @@ -1161,7 +1161,7 @@ namespace ICSharpCode.NRefactory.CSharp } WriteIdentifier(typeDeclaration.Name); WriteTypeParameters(typeDeclaration.TypeParameters); - if (typeDeclaration.BaseTypes.Any()) { + if (typeDeclaration.BaseTypes.Any() && !IsStandardEnum(typeDeclaration)) { Space(); WriteToken(":", TypeDeclaration.ColonRole); Space(); @@ -1192,6 +1192,22 @@ namespace ICSharpCode.NRefactory.CSharp NewLine(); return EndNode(typeDeclaration); } + + private static bool IsStandardEnum(TypeDeclaration typeDeclaration) + { + if (typeDeclaration.ClassType != ClassType.Enum) + { + return false; + } + + if (typeDeclaration.BaseTypes.Count != 1) // is is possible? + { + return false; + } + + var baseType = typeDeclaration.BaseTypes.First() as PrimitiveType; + return baseType != null && baseType.Keyword == "int"; + } public object VisitUsingAliasDeclaration(UsingAliasDeclaration usingAliasDeclaration, object data) {