Skip to content

Commit 27d2810

Browse files
Treat local function as a method that should go in a class
1 parent 0abc732 commit 27d2810

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

CodeConverter/VB/CSToVBConversion.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Globalization;
22
using System.Text;
33
using Microsoft.CodeAnalysis.CSharp;
4+
using Microsoft.CodeAnalysis.CSharp.Syntax;
45
using SyntaxKind = Microsoft.CodeAnalysis.CSharp.SyntaxKind;
56

67
namespace ICSharpCode.CodeConverter.VB;
@@ -145,7 +146,7 @@ private static string TweakOutputPath(string s)
145146
public bool CanBeContainedByMethod(SyntaxNode node)
146147
{
147148
return node is CSSyntax.IncompleteMemberSyntax ||
148-
node is CSSyntax.StatementSyntax ||
149+
node is CSSyntax.StatementSyntax and not CSSyntax.LocalFunctionStatementSyntax ||
149150
node.ContainsSkippedText ||
150151
node.IsMissing ||
151152
ParsedAsFieldButCouldBeLocalVariableDeclaration(node);
@@ -154,7 +155,7 @@ node is CSSyntax.StatementSyntax ||
154155
public bool MustBeContainedByClass(SyntaxNode node)
155156
{
156157
return node is CSSyntax.BaseMethodDeclarationSyntax || node is CSSyntax.BaseFieldDeclarationSyntax ||
157-
node is CSSyntax.BasePropertyDeclarationSyntax;
158+
node is CSSyntax.BasePropertyDeclarationSyntax || node is CSSyntax.LocalFunctionStatementSyntax;
158159
}
159160

160161
private static bool ParsedAsFieldButCouldBeLocalVariableDeclaration(SyntaxNode node)

Tests/VB/ExpressionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,7 +711,7 @@ End Module
711711
public async Task CreateValueTupleTypeAsync()
712712
{
713713
await TestConversionCSharpToVisualBasicAsync(@"(double Sum, int Count) t2 = (4.5, 3);",
714-
@"Private t2 As (Double, Integer) = (4.5, 3)"
714+
@"Dim t2 = (4.5, 3)"
715715
);
716716
}
717717

0 commit comments

Comments
 (0)