Skip to content

Commit 981516b

Browse files
Ask AI to fix compile warnings
1 parent 9da501f commit 981516b

File tree

6 files changed

+277
-251
lines changed

6 files changed

+277
-251
lines changed

CodeConverter/CSharp/AccessorDeclarationNodeConverter.cs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
using ICSharpCode.CodeConverter.Util.FromRoslyn;
2-
using Microsoft.CodeAnalysis.VisualBasic;
1+
using Microsoft.CodeAnalysis.VisualBasic;
2+
using static Microsoft.CodeAnalysis.VisualBasic.VisualBasicExtensions;
3+
using ICSharpCode.CodeConverter.Util.FromRoslyn;
34

45
namespace ICSharpCode.CodeConverter.CSharp;
56

@@ -446,20 +447,28 @@ public CSSyntax.BlockSyntax WithImplicitReturnStatements(VBSyntax.MethodBlockBas
446447
CSSyntax.IdentifierNameSyntax csReturnVariableOrNull)
447448
{
448449
if (!node.MustReturn()) return convertedStatements;
449-
if (_semanticModel.GetDeclaredSymbol(node) is { } ms && ms.ReturnsVoidOrAsyncTask()) {
450+
var methodSymbol = node switch {
451+
VBSyntax.MethodBlockSyntax mb => _semanticModel.GetDeclaredSymbol(mb.SubOrFunctionStatement),
452+
VBSyntax.AccessorBlockSyntax ab => _semanticModel.GetDeclaredSymbol(ab.AccessorStatement),
453+
_ => _semanticModel.GetDeclaredSymbol(node)
454+
} as IMethodSymbol;
455+
if (methodSymbol?.ReturnsVoidOrAsyncTask() == true) {
450456
return convertedStatements;
451457
}
452458

453459

454460
var preBodyStatements = new List<CSSyntax.StatementSyntax>();
455461
var postBodyStatements = new List<CSSyntax.StatementSyntax>();
456462

457-
var symbolNode = node.TypeSwitch(
458-
(VBSyntax.MethodBlockSyntax mb) => (VisualBasicSyntaxNode)mb.SubOrFunctionStatement,
459-
(VBSyntax.AccessorBlockSyntax ab) => ab.AccessorStatement,
460-
_ => node
461-
);
462-
var functionSym = ModelExtensions.GetDeclaredSymbol(_semanticModel, symbolNode);
463+
var symbol = node switch {
464+
VBSyntax.MethodBlockSyntax mb => _semanticModel.GetDeclaredSymbol(mb.SubOrFunctionStatement),
465+
VBSyntax.AccessorBlockSyntax ab => _semanticModel.GetDeclaredSymbol(ab.AccessorStatement),
466+
_ => null
467+
};
468+
var functionSym = symbol switch {
469+
IMethodSymbol ms => ms,
470+
_ => _semanticModel.GetDeclaredSymbol(node) as IMethodSymbol
471+
};
463472
if (functionSym != null) {
464473
var returnType = CommonConversions.GetTypeSyntax(functionSym.GetReturnType());
465474

CodeConverter/CSharp/CommonConversions.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Microsoft.CodeAnalysis.FindSymbols;
99
using Microsoft.CodeAnalysis.Operations;
1010
using Microsoft.CodeAnalysis.Simplification;
11+
using static Microsoft.CodeAnalysis.VisualBasic.VisualBasicExtensions;
1112
using ArgumentListSyntax = Microsoft.CodeAnalysis.VisualBasic.Syntax.ArgumentListSyntax;
1213
using ArrayRankSpecifierSyntax = Microsoft.CodeAnalysis.CSharp.Syntax.ArrayRankSpecifierSyntax;
1314
using ArrayTypeSyntax = Microsoft.CodeAnalysis.CSharp.Syntax.ArrayTypeSyntax;
@@ -598,7 +599,12 @@ private async Task<ExpressionSyntax> GetParameterizedSetterArgAsync(IOperation o
598599
public CSSyntax.IdentifierNameSyntax GetRetVariableNameOrNull(VBSyntax.MethodBlockBaseSyntax node)
599600
{
600601
if (!node.MustReturn()) return null;
601-
if (SemanticModel.GetDeclaredSymbol(node) is IMethodSymbol ms && ms.ReturnsVoidOrAsyncTask()) {
602+
var methodSymbol = node switch {
603+
VBSyntax.MethodBlockSyntax mb => SemanticModel.GetDeclaredSymbol(mb.SubOrFunctionStatement),
604+
VBSyntax.AccessorBlockSyntax ab => SemanticModel.GetDeclaredSymbol(ab.AccessorStatement),
605+
_ => SemanticModel.GetDeclaredSymbol(node)
606+
} as IMethodSymbol;
607+
if (methodSymbol?.ReturnsVoidOrAsyncTask() == true) {
602608
return null;
603609
}
604610

0 commit comments

Comments
 (0)