-
Notifications
You must be signed in to change notification settings - Fork 232
Open
Labels
VB -> C#Specific to VB -> C# conversionSpecific to VB -> C# conversion
Description
VB.Net input code
Dim res = LicenseService.Instance.GetLicenseMaybe(licenseName)Erroneous output
var res = default
#error Cannot convert InvocationExpressionSyntax - see comment for details
/* Cannot convert ArgumentListSyntax, System.ArgumentException: Knoten ist nicht innerhalb Syntaxbaum
at Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel.GetTypeInfoWorker(AttributeSyntax attribute, CancellationToken cancellationToken)
at ICSharpCode.CodeConverter.CSharp.CommonConversions.IsOutAttribute(AttributeSyntax a) in /_/CodeConverter/CSharp/CommonConversions.cs:line 671
at ICSharpCode.CodeConverter.CSharp.CommonConversions.HasOutAttribute(AttributeListSyntax a) in /_/CodeConverter/CSharp/CommonConversions.cs:line 662
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at ICSharpCode.CodeConverter.CSharp.ArgumentConverter.CreateExtraArgOrNull(IParameterSymbol p, Boolean requiresCompareMethod, Boolean expandOptionalArgs) in /_/CodeConverter/CSharp/ArgumentConverter.cs:line 207
at ICSharpCode.CodeConverter.CSharp.ArgumentConverter.GetAdditionalRequiredArgs(IEnumerable`1 arguments, ICollection`1 processedParametersNames, ISymbol invocationSymbol, Boolean invocationHasOverloads)+MoveNext() in /_/CodeConverter/CSharp/ArgumentConverter.cs:line 191
at System.Linq.Enumerable.ConcatIterator`1.MoveNext()
at Microsoft.CodeAnalysis.CSharp.SyntaxFactory.SeparatedList[TNode](IEnumerable`1 nodes)
at ICSharpCode.CodeConverter.CSharp.ExpressionNodeVisitor.VisitArgumentList(ArgumentListSyntax node) in /_/CodeConverter/CSharp/ExpressionNodeVisitor.cs:line 223
at ICSharpCode.CodeConverter.CSharp.CommentConvertingVisitorWrapper.ConvertHandledAsync[T](VisualBasicSyntaxNode vbNode, SourceTriviaMapKind sourceTriviaMap) in /_/CodeConverter/CSharp/CommentConvertingVisitorWrapper.cs:line 40
Input: (licenseName)
Context:
Global.MyCompany.MyNamespace.Administration.Licensing.LicenseService.Instance.GetLicenseMaybe(licenseName)
*/Expected output
var res = LicenseService.Instance.GetLicenseMaybe(licenseName);Details
- dotnet tool 10.0.1.923
The solution I tried to convert is very large - a single project with more than 1200 files and god knows how many lines of code.
There are about 700 occurrences of this #error Cannot convert InvocationExpressionSyntax.
I don't see a clear pattern, but it seems to affect many calls of Singletons (like the above LicenseService), but not exclusively.
Many of them - like the above example - I can simply fix by removing the error comment and putting the line exactly as shown in the expected output above.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
VB -> C#Specific to VB -> C# conversionSpecific to VB -> C# conversion