Skip to content

Commit be8f7b7

Browse files
committed
Ensure base.Finalize() is removed
Closes #269
1 parent 45de45c commit be8f7b7

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

ICSharpCode.CodeConverter/CSharp/MethodBodyVisitor.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ private static SyntaxKind ConvertAddRemoveHandlerToCSharpSyntaxKind(VBSyntax.Add
105105

106106
public override SyntaxList<StatementSyntax> VisitExpressionStatement(VBSyntax.ExpressionStatementSyntax node)
107107
{
108+
if (node.Expression is VBSyntax.InvocationExpressionSyntax invoke &&
109+
invoke.Expression is VBSyntax.MemberAccessExpressionSyntax expr &&
110+
expr.Expression is VBSyntax.MyBaseExpressionSyntax &&
111+
expr.Name.Identifier.ValueText.Equals("Finalize", StringComparison.OrdinalIgnoreCase)) {
112+
return new SyntaxList<StatementSyntax>();
113+
}
108114
return SingleStatement((ExpressionSyntax)node.Expression.Accept(_nodesVisitor));
109115
}
110116

Tests/CSharp/ExpressionTests.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,5 +1090,20 @@ public string StringInter(string t, DateTime dt)
10901090
}
10911091
}");
10921092
}
1093+
1094+
[Fact]
1095+
public void BaseFinalizeRemoved()
1096+
{
1097+
TestConversionVisualBasicToCSharpWithoutComments(@"Public Class Class1
1098+
Protected Overrides Sub Finalize()
1099+
MyBase.Finalize()
1100+
End Sub
1101+
End Class", @"public class Class1
1102+
{
1103+
~Class1()
1104+
{
1105+
}
1106+
}");
1107+
}
10931108
}
10941109
}

0 commit comments

Comments
 (0)