Skip to content

Commit 0abc732

Browse files
Look inside global statements
1 parent 6a207d7 commit 0abc732

File tree

3 files changed

+10
-6
lines changed

3 files changed

+10
-6
lines changed

CodeConverter/Common/LanguageConversionExtensions.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Microsoft.CodeAnalysis.Text;
1+
using Microsoft.CodeAnalysis.CSharp.Syntax;
2+
using Microsoft.CodeAnalysis.Text;
23

34
namespace ICSharpCode.CodeConverter.Common;
45

@@ -7,7 +8,11 @@ public static SyntaxTree MakeFullCompilationUnit(this ILanguageConversion langua
78
var tree= languageConversion.CreateTree(code);
89
var root = tree.GetRoot();
910
textSpan = null;
10-
var rootChildren = root.ChildNodes().ToList();
11+
12+
var rootChildren = root.ChildNodes()
13+
//https://github.com/icsharpcode/CodeConverter/issues/825
14+
.Select(c => c is GlobalStatementSyntax {Statement: var s} ? s : c)
15+
.ToList();
1116
var requiresSurroundingClass = rootChildren.Any(languageConversion.MustBeContainedByClass);
1217
var requiresSurroundingMethod = rootChildren.All(languageConversion.CanBeContainedByMethod);
1318

CodeConverter/VB/CSToVBConversion.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,14 +148,13 @@ public bool CanBeContainedByMethod(SyntaxNode node)
148148
node is CSSyntax.StatementSyntax ||
149149
node.ContainsSkippedText ||
150150
node.IsMissing ||
151-
ParsedAsFieldButCouldBeLocalVariableDeclaration(node); ;
151+
ParsedAsFieldButCouldBeLocalVariableDeclaration(node);
152152
}
153153

154154
public bool MustBeContainedByClass(SyntaxNode node)
155155
{
156156
return node is CSSyntax.BaseMethodDeclarationSyntax || node is CSSyntax.BaseFieldDeclarationSyntax ||
157-
node is CSSyntax.BasePropertyDeclarationSyntax ||
158-
node is CSSyntax.GlobalStatementSyntax; //https://github.com/icsharpcode/CodeConverter/issues/825
157+
node is CSSyntax.BasePropertyDeclarationSyntax;
159158
}
160159

161160
private static bool ParsedAsFieldButCouldBeLocalVariableDeclaration(SyntaxNode node)

Tests/VB/StandaloneStatementTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public async Task ReassignmentAsync()
1212
await TestConversionCSharpToVisualBasicAsync(
1313
@"int num = 4;
1414
num = 5;",
15-
@"Dim num As Integer = 4
15+
@"Dim num = 4
1616
num = 5",
1717
expectSurroundingMethodBlock: true);
1818
}

0 commit comments

Comments
 (0)