@@ -224,15 +224,25 @@ protected ImmutableArray<TStatementSyntax> AddReturnIfUnreachable(
224224 return statements . Concat ( CreateReturnStatement ( [ ] ) ) ;
225225 }
226226
227- private TExecutableStatementSyntax CreateReturnStatement ( ImmutableArray < VariableInfo > variables )
227+ //private TExecutableStatementSyntax CreateReturnStatement(ImmutableArray<VariableInfo> variables)
228+ //{
229+ // var generator = this.SemanticDocument.GetRequiredLanguageService<SyntaxGenerator>();
230+ // return CreateReturnStatement(variables.SelectAsArray(v => (TExpressionSyntax)generator.IdentifierName(v.Name)));
231+ //}
232+
233+ private TExecutableStatementSyntax CreateReturnStatement ( ImmutableArray < TExpressionSyntax > expressions )
228234 {
229235 var generator = this . SemanticDocument . GetRequiredLanguageService < SyntaxGenerator > ( ) ;
230- var returnStatement =
231- variables . Length == 0 ? generator . ReturnStatement ( ) :
232- variables . Length == 1 ? generator . ReturnStatement ( generator . IdentifierName ( variables [ 0 ] . Name ) ) :
233- generator . ReturnStatement ( generator . TupleExpression ( variables . SelectAsArray ( v => generator . IdentifierName ( v . Name ) ) ) ) ;
236+ return ( TExecutableStatementSyntax ) generator . ReturnStatement ( CreateReturnExpression ( expressions ) ) ;
237+ }
234238
235- return ( TExecutableStatementSyntax ) returnStatement ;
239+ private TExpressionSyntax CreateReturnExpression ( ImmutableArray < TExpressionSyntax > expressions )
240+ {
241+ var generator = this . SemanticDocument . GetRequiredLanguageService < SyntaxGenerator > ( ) ;
242+ return
243+ expressions . Length == 0 ? null :
244+ expressions . Length == 1 ? expressions [ 0 ] :
245+ ( TExpressionSyntax ) generator . TupleExpression ( expressions . Select ( generator . Argument ) ) ;
236246 }
237247
238248 protected async Task < ImmutableArray < TStatementSyntax > > AddInvocationAtCallSiteAsync (
@@ -297,7 +307,11 @@ protected ImmutableArray<TStatementSyntax> AppendReturnStatementIfNeeded(Immutab
297307 if ( AnalyzerResult . VariablesToUseAsReturnValue . IsEmpty )
298308 return statements ;
299309
300- return statements . Concat ( CreateReturnStatement ( AnalyzerResult . VariablesToUseAsReturnValue ) ) ;
310+ var generator = this . SemanticDocument . GetRequiredLanguageService < SyntaxGenerator > ( ) ;
311+ return statements . Concat ( CreateReturnStatement (
312+ AnalyzerResult . VariablesToUseAsReturnValue . SelectAsArray (
313+ static ( v , generator ) => ( TExpressionSyntax ) generator . IdentifierName ( v . Name ) ,
314+ generator ) ) ) ;
301315 }
302316
303317 protected static HashSet < SyntaxAnnotation > CreateVariableDeclarationToRemoveMap (
0 commit comments