Skip to content

Commit 3f24c1b

Browse files
C# -> VB: Convert enums with explicit base type - fixes #207
1 parent 5f8dd06 commit 3f24c1b

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

ICSharpCode.CodeConverter/VB/NodesVisitor.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,8 @@ public override VisualBasicSyntaxNode VisitInterfaceDeclaration(CSS.InterfaceDec
263263
public override VisualBasicSyntaxNode VisitEnumDeclaration(CSS.EnumDeclarationSyntax node)
264264
{
265265
var members = node.Members.Select(m => (StatementSyntax)m.Accept(TriviaConvertingVisitor));
266-
var baseType = (TypeSyntax)node.BaseList?.Types.Single().Accept(TriviaConvertingVisitor);
266+
var baseType = (TypeSyntax)node.BaseList?
267+
.Types.OfType<CSS.SimpleBaseTypeSyntax>().Single().Type.Accept(TriviaConvertingVisitor);
267268
return SyntaxFactory.EnumBlock(
268269
SyntaxFactory.EnumStatement(
269270
SyntaxFactory.List(node.AttributeLists.Select(a => (AttributeListSyntax)a.Accept(TriviaConvertingVisitor))), CommonConversions.ConvertModifiers(node.Modifiers), CommonConversions.ConvertIdentifier(node.Identifier),

Tests/VB/NamespaceLevelTests.cs

+12
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,18 @@ public void TestEnum()
144144
End Enum");
145145
}
146146

147+
[Fact]
148+
public void TestEnumWithExplicitBaseType()
149+
{
150+
TestConversionCSharpToVisualBasic(
151+
@"public enum ExceptionResource : byte
152+
{
153+
Argument_ImplementIComparable
154+
}", @"Public Enum ExceptionResource As Byte
155+
Argument_ImplementIComparable
156+
End Enum");
157+
}
158+
147159
[Fact]
148160
public void TestClassInheritanceList()
149161
{

0 commit comments

Comments
 (0)