@@ -84,36 +84,41 @@ symbol.TypeArguments[1] is not INamedTypeSymbol resultSignatureSymbol ||
84
84
85
85
// known type names
86
86
public static readonly PredefinedTypeSyntax IntType = PredefinedType ( Token ( SyntaxKind . IntKeyword ) ) ;
87
- public static readonly IdentifierNameSyntax EnumeratorName = IdentifierName ( "Enumerator" ) ;
87
+ public static readonly IdentifierNameSyntax EnumeratorType = IdentifierName ( "Enumerator" ) ;
88
88
89
89
// known method names
90
- public static readonly IdentifierNameSyntax InvokeName = IdentifierName ( "Invoke" ) ;
91
- public static readonly IdentifierNameSyntax MoveNextName = IdentifierName ( "MoveNext" ) ;
92
- public static readonly IdentifierNameSyntax DisposeName = IdentifierName ( "Dispose" ) ;
93
- public static readonly IdentifierNameSyntax GetEnumeratorName = IdentifierName ( "GetEnumerator" ) ;
94
- public static readonly IdentifierNameSyntax GetSliceEnumeratorName = IdentifierName ( "GetSliceEnumerator" ) ;
90
+ public static readonly IdentifierNameSyntax InvokeMethod = IdentifierName ( "Invoke" ) ;
91
+ public static readonly IdentifierNameSyntax MoveNextMethod = IdentifierName ( "MoveNext" ) ;
92
+ public static readonly IdentifierNameSyntax DisposeMethod = IdentifierName ( "Dispose" ) ;
93
+ public static readonly IdentifierNameSyntax GetEnumeratorMethod = IdentifierName ( "GetEnumerator" ) ;
94
+ public static readonly IdentifierNameSyntax GetSliceEnumeratorMethod = IdentifierName ( "GetSliceEnumerator" ) ;
95
95
96
96
// known property names
97
- public static readonly IdentifierNameSyntax CurrentName = IdentifierName ( "Current" ) ;
98
- public static readonly IdentifierNameSyntax CountName = IdentifierName ( "Count" ) ;
99
- public static readonly IdentifierNameSyntax LengthName = IdentifierName ( "Length" ) ;
97
+ public static readonly IdentifierNameSyntax CurrentProperty = IdentifierName ( "Current" ) ;
98
+ public static readonly IdentifierNameSyntax CountProperty = IdentifierName ( "Count" ) ;
99
+ public static readonly IdentifierNameSyntax LengthProperty = IdentifierName ( "Length" ) ;
100
+ public static readonly IdentifierNameSyntax HasValueProperty = IdentifierName ( "HasValue" ) ;
101
+ public static readonly IdentifierNameSyntax ValueProperty = IdentifierName ( "Value" ) ;
100
102
101
103
// custom variable names
102
- public static readonly IdentifierNameSyntax ParentName = IdentifierName ( "parent" ) ;
103
- public static readonly IdentifierNameSyntax SourceName = IdentifierName ( "source" ) ;
104
- public static readonly IdentifierNameSyntax IteratorName = IdentifierName ( "iter" ) ;
105
- public static readonly IdentifierNameSyntax IndexName = IdentifierName ( "index" ) ;
106
- public static readonly IdentifierNameSyntax SelectorName = IdentifierName ( "select" ) ;
107
- public static readonly IdentifierNameSyntax PredicateName = IdentifierName ( "predicate" ) ;
108
- public static readonly IdentifierNameSyntax InitialValueName = IdentifierName ( "initialValue" ) ;
109
- public static readonly IdentifierNameSyntax SkipName = IdentifierName ( "skip" ) ;
110
- public static readonly IdentifierNameSyntax TakeName = IdentifierName ( "take" ) ;
104
+ public static readonly IdentifierNameSyntax ParentField = IdentifierName ( "parent" ) ;
105
+ public static readonly IdentifierNameSyntax SourceField = IdentifierName ( "source" ) ;
106
+ public static readonly IdentifierNameSyntax IteratorField = IdentifierName ( "iter" ) ;
107
+ public static readonly IdentifierNameSyntax IndexField = IdentifierName ( "index" ) ;
108
+ public static readonly IdentifierNameSyntax SelectorField = IdentifierName ( "select" ) ;
109
+ public static readonly IdentifierNameSyntax PredicateField = IdentifierName ( "predicate" ) ;
110
+ public static readonly IdentifierNameSyntax InitialValueField = IdentifierName ( "initialValue" ) ;
111
+ public static readonly IdentifierNameSyntax SkipField = IdentifierName ( "skip" ) ;
112
+ public static readonly IdentifierNameSyntax TakeField = IdentifierName ( "take" ) ;
113
+ public static readonly IdentifierNameSyntax ValueField = IdentifierName ( "value" ) ;
111
114
112
115
public static readonly TypeSyntax VarType = IdentifierName ( "var" ) ;
113
116
public static readonly TypeSyntax ObjectType = IdentifierName ( "object" ) ;
114
117
115
118
public static readonly LiteralExpressionSyntax DefaultLiteral =
116
119
SyntaxFactory . LiteralExpression ( SyntaxKind . DefaultLiteralExpression ) ;
120
+ public static readonly LiteralExpressionSyntax NullLiteral =
121
+ SyntaxFactory . LiteralExpression ( SyntaxKind . NullLiteralExpression ) ;
117
122
118
123
public static readonly SyntaxToken UsingKeywordToken = Token ( SyntaxKind . UsingKeyword ) ;
119
124
public static readonly SyntaxToken SemicolonToken = Token ( SyntaxKind . SemicolonToken ) ;
@@ -275,6 +280,11 @@ public static PrefixUnaryExpressionSyntax PreIncrementExpression(ExpressionSynta
275
280
return SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . PreIncrementExpression , operand ) ;
276
281
}
277
282
283
+ public static PrefixUnaryExpressionSyntax PreDecrementExpression ( ExpressionSyntax operand )
284
+ {
285
+ return SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . PreDecrementExpression , operand ) ;
286
+ }
287
+
278
288
public static PrefixUnaryExpressionSyntax LogicalNotExpression ( ExpressionSyntax operand )
279
289
{
280
290
return SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . LogicalNotExpression , operand ) ;
@@ -290,11 +300,21 @@ public static BinaryExpressionSyntax GreaterOrEqualExpression(ExpressionSyntax l
290
300
return SyntaxFactory . BinaryExpression ( SyntaxKind . GreaterThanOrEqualExpression , left , right ) ;
291
301
}
292
302
303
+ public static BinaryExpressionSyntax AddExpression ( ExpressionSyntax left , ExpressionSyntax right )
304
+ {
305
+ return SyntaxFactory . BinaryExpression ( SyntaxKind . AddExpression , left , right ) ;
306
+ }
307
+
293
308
public static BinaryExpressionSyntax SubtractExpression ( ExpressionSyntax left , ExpressionSyntax right )
294
309
{
295
310
return SyntaxFactory . BinaryExpression ( SyntaxKind . SubtractExpression , left , right ) ;
296
311
}
297
312
313
+ public static BinaryExpressionSyntax NullCoalesce ( ExpressionSyntax left , ExpressionSyntax right )
314
+ {
315
+ return SyntaxFactory . BinaryExpression ( SyntaxKind . CoalesceExpression , left , right ) ;
316
+ }
317
+
298
318
public static BinaryExpressionSyntax IsExpression ( ExpressionSyntax left , ExpressionSyntax right )
299
319
{
300
320
return SyntaxFactory . BinaryExpression ( SyntaxKind . IsExpression , left , right ) ;
@@ -307,6 +327,13 @@ public static ExpressionSyntax MathMin(ExpressionSyntax left, ExpressionSyntax r
307
327
ArgumentList ( left , right ) ) ;
308
328
}
309
329
330
+ public static ExpressionSyntax MathMax ( ExpressionSyntax left , ExpressionSyntax right )
331
+ {
332
+ return SyntaxFactory . InvocationExpression (
333
+ MemberAccessExpression ( IdentifierName ( "Math" ) , IdentifierName ( "Max" ) ) ,
334
+ ArgumentList ( left , right ) ) ;
335
+ }
336
+
310
337
public static ExpressionSyntax TrueExpression ( )
311
338
{
312
339
return SyntaxFactory . LiteralExpression ( SyntaxKind . TrueLiteralExpression ) ;
0 commit comments