@@ -108,7 +108,6 @@ private static void HandleGreaterThanToken(SyntaxTreeAnalysisContext context, Sy
108
108
SyntaxToken nextToken = token . GetNextToken ( ) ;
109
109
switch ( nextToken . Kind ( ) )
110
110
{
111
- case SyntaxKind . OpenParenToken :
112
111
// DotToken isn't listed above, but it's required for reasonable member access formatting
113
112
case SyntaxKind . DotToken :
114
113
// CommaToken isn't listed above, but it's required for reasonable nested generic type arguments formatting
@@ -122,6 +121,10 @@ private static void HandleGreaterThanToken(SyntaxTreeAnalysisContext context, Sy
122
121
allowTrailingSpace = false ;
123
122
break ;
124
123
124
+ case SyntaxKind . OpenParenToken :
125
+ AnalyzeWithTrailingOpenParen ( nextToken , out allowTrailingNoSpace , out allowTrailingSpace ) ;
126
+ break ;
127
+
125
128
case SyntaxKind . CloseParenToken :
126
129
case SyntaxKind . GreaterThanToken :
127
130
allowTrailingNoSpace = true ;
@@ -187,5 +190,33 @@ private static void HandleGreaterThanToken(SyntaxTreeAnalysisContext context, Sy
187
190
}
188
191
}
189
192
}
193
+
194
+ private static void AnalyzeWithTrailingOpenParen (
195
+ SyntaxToken nextToken ,
196
+ out bool allowTrailingNoSpace ,
197
+ out bool allowTrailingSpace )
198
+ {
199
+ switch ( nextToken . Parent . Kind ( ) )
200
+ {
201
+ // List<int> (int x) => new List<int> { x }
202
+ // ^ ^
203
+ case SyntaxKind . ParameterList when nextToken . Parent . Parent . IsKind ( SyntaxKind . ParenthesizedLambdaExpression ) :
204
+ allowTrailingNoSpace = false ;
205
+ allowTrailingSpace = true ;
206
+ break ;
207
+
208
+ // NOTE: Intentionally keeping redundant cases here as documentation of what is known to occur
209
+ // M<int>()
210
+ // ^^
211
+ case SyntaxKind . ArgumentList :
212
+ // void M<T>(T x) { }
213
+ // ^^
214
+ case SyntaxKind . ParameterList when nextToken . Parent . Parent . IsKind ( SyntaxKind . MethodDeclaration ) :
215
+ default :
216
+ allowTrailingNoSpace = true ;
217
+ allowTrailingSpace = false ;
218
+ break ;
219
+ }
220
+ }
190
221
}
191
222
}
0 commit comments