Skip to content

Commit 3b8c0c3

Browse files
Handle dot in case expression - fixes #223
1 parent e7e4c37 commit 3b8c0c3

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

ICSharpCode.CodeConverter/VB/MethodBodyVisitor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ string MakeGotoSwitchLabel(VisualBasicSyntaxNode expression)
474474
if (expression is ElseCaseClauseSyntax)
475475
expressionText = "Default";
476476
else
477-
expressionText = expression.ToString();
477+
expressionText = expression.ToString().Replace('.', '_');
478478
return $"_Select{_switchCount}_Case{expressionText}";
479479
}
480480

Tests/VB/StatementTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -928,6 +928,36 @@ End Sub
928928
End Class");
929929
}
930930

931+
[Fact]
932+
public void SelectCase_WithDotInCaseLabel()
933+
{
934+
TestConversionCSharpToVisualBasic(@"class TestClass
935+
{
936+
void TestMethod(double number)
937+
{
938+
switch (number) {
939+
case 3:
940+
Console.Write(""section 3"");
941+
goto case 5.5;
942+
case 5.5:
943+
Console.Write(""section 5"");
944+
break;
945+
}
946+
}
947+
}", @"Friend Class TestClass
948+
Private Sub TestMethod(ByVal number As Double)
949+
Select Case number
950+
Case 3
951+
Console.Write(""section 3"")
952+
GoTo _Select0_Case5_5
953+
Case 5.5
954+
_Select0_Case5_5:
955+
Console.Write(""section 5"")
956+
End Select
957+
End Sub
958+
End Class");
959+
}
960+
931961
[Fact]
932962
public void TryCatch()
933963
{

0 commit comments

Comments
 (0)