From 3f24c1ba3a67167ca3d773fd6f7971e4762d1d70 Mon Sep 17 00:00:00 2001 From: GrahamTheCoder Date: Sun, 18 Nov 2018 21:19:00 +0000 Subject: [PATCH] C# -> VB: Convert enums with explicit base type - fixes #207 --- ICSharpCode.CodeConverter/VB/NodesVisitor.cs | 3 ++- Tests/VB/NamespaceLevelTests.cs | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.CodeConverter/VB/NodesVisitor.cs b/ICSharpCode.CodeConverter/VB/NodesVisitor.cs index aebd36aec..c29d55c01 100644 --- a/ICSharpCode.CodeConverter/VB/NodesVisitor.cs +++ b/ICSharpCode.CodeConverter/VB/NodesVisitor.cs @@ -263,7 +263,8 @@ public override VisualBasicSyntaxNode VisitInterfaceDeclaration(CSS.InterfaceDec public override VisualBasicSyntaxNode VisitEnumDeclaration(CSS.EnumDeclarationSyntax node) { var members = node.Members.Select(m => (StatementSyntax)m.Accept(TriviaConvertingVisitor)); - var baseType = (TypeSyntax)node.BaseList?.Types.Single().Accept(TriviaConvertingVisitor); + var baseType = (TypeSyntax)node.BaseList? + .Types.OfType().Single().Type.Accept(TriviaConvertingVisitor); return SyntaxFactory.EnumBlock( SyntaxFactory.EnumStatement( SyntaxFactory.List(node.AttributeLists.Select(a => (AttributeListSyntax)a.Accept(TriviaConvertingVisitor))), CommonConversions.ConvertModifiers(node.Modifiers), CommonConversions.ConvertIdentifier(node.Identifier), diff --git a/Tests/VB/NamespaceLevelTests.cs b/Tests/VB/NamespaceLevelTests.cs index 66e283c28..7ef3545a8 100644 --- a/Tests/VB/NamespaceLevelTests.cs +++ b/Tests/VB/NamespaceLevelTests.cs @@ -144,6 +144,18 @@ public void TestEnum() End Enum"); } + [Fact] + public void TestEnumWithExplicitBaseType() + { + TestConversionCSharpToVisualBasic( + @"public enum ExceptionResource : byte +{ + Argument_ImplementIComparable +}", @"Public Enum ExceptionResource As Byte + Argument_ImplementIComparable +End Enum"); + } + [Fact] public void TestClassInheritanceList() {