@@ -18,17 +18,17 @@ internal class CommentConvertingVisitorWrapper
1818 {
1919 private readonly VBasic . VisualBasicSyntaxVisitor < Task < CS . CSharpSyntaxNode > > _wrappedVisitor ;
2020 private readonly SyntaxTree _syntaxTree ;
21+ private static readonly CSSyntax . StatementSyntax _dummyStatement = CS . SyntaxFactory . EmptyStatement ( ) ;
22+ private static readonly CSSyntax . LiteralExpressionSyntax _dummyLiteral = ValidSyntaxFactory . DefaultExpression ;
2123
2224 public CommentConvertingVisitorWrapper ( VisualBasicSyntaxVisitor < Task < CSharpSyntaxNode > > wrappedVisitor , SyntaxTree syntaxTree )
2325 {
2426 _wrappedVisitor = wrappedVisitor ;
2527 _syntaxTree = syntaxTree ;
2628 }
2729
28- public async Task < T > AcceptAsync < T > ( SyntaxNode vbNode , SourceTriviaMapKind sourceTriviaMap ) where T : CS . CSharpSyntaxNode
29- {
30- return await ConvertHandledAsync < T > ( vbNode , sourceTriviaMap ) ;
31- }
30+ public async Task < T > AcceptAsync < T > ( VisualBasicSyntaxNode vbNode , SourceTriviaMapKind sourceTriviaMap ) where T : CS . CSharpSyntaxNode =>
31+ await ConvertHandledAsync < T > ( vbNode , sourceTriviaMap ) ;
3232
3333 public async Task < SeparatedSyntaxList < TOut > > AcceptAsync < TIn , TOut > ( SeparatedSyntaxList < TIn > vbNodes , SourceTriviaMapKind sourceTriviaMap ) where TIn : VBasic . VisualBasicSyntaxNode where TOut : CS . CSharpSyntaxNode
3434 {
@@ -41,7 +41,7 @@ public async Task<SeparatedSyntaxList<TOut>> AcceptAsync<TIn, TOut>(SeparatedSyn
4141 return CS . SyntaxFactory . SeparatedList ( convertedNodes , convertedSeparators ) ;
4242 }
4343
44- private async Task < T > ConvertHandledAsync < T > ( SyntaxNode vbNode , SourceTriviaMapKind sourceTriviaMap ) where T : CS . CSharpSyntaxNode
44+ private async Task < T > ConvertHandledAsync < T > ( VisualBasicSyntaxNode vbNode , SourceTriviaMapKind sourceTriviaMap ) where T : CS . CSharpSyntaxNode
4545 {
4646 try {
4747 var converted = ( T ) await _wrappedVisitor . Visit ( vbNode ) ;
@@ -50,9 +50,10 @@ private async Task<T> ConvertHandledAsync<T>(SyntaxNode vbNode, SourceTriviaMapK
5050 : sourceTriviaMap == SourceTriviaMapKind . SubNodesOnly
5151 ? converted
5252 : WithSourceMapping ( vbNode , converted ) ;
53- } catch ( Exception e ) when ( typeof ( T ) . IsAssignableFrom ( typeof ( CSSyntax . EmptyStatementSyntax ) ) ) {
54- var dummyStatement = ( T ) ( object ) CS . SyntaxFactory . EmptyStatement ( ) ;
55- return dummyStatement . WithCsTrailingErrorComment ( ( VBasic . VisualBasicSyntaxNode ) vbNode , e ) ;
53+ } catch ( Exception e ) when ( _dummyStatement is T dummy ) {
54+ return dummy . WithCsTrailingErrorComment ( vbNode , e ) ;
55+ } catch ( Exception e ) when ( _dummyLiteral is T dummy ) {
56+ return dummy . WithCsTrailingErrorComment ( vbNode , e ) ;
5657 } catch ( Exception e ) when ( ! ( e is ExceptionWithNodeInformation ) ) {
5758 throw e . WithNodeInformation ( vbNode ) ;
5859 }
0 commit comments