Skip to content

Commit ae8245b

Browse files
committed
C#: Simplify and streamline the implementation of Prefix and Postfix unary expressions.
1 parent 1cad11a commit ae8245b

3 files changed

Lines changed: 8 additions & 15 deletions

File tree

csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Factory.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ internal static Expression Create(ExpressionNodeInfo info)
5858
return Invocation.Create(info);
5959

6060
case SyntaxKind.PostIncrementExpression:
61-
return PostfixUnary.Create(info.SetKind(ExprKind.POST_INCR), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
61+
return PostfixUnary.Create(info.SetKind(ExprKind.POST_INCR));
6262

6363
case SyntaxKind.PostDecrementExpression:
64-
return PostfixUnary.Create(info.SetKind(ExprKind.POST_DECR), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
64+
return PostfixUnary.Create(info.SetKind(ExprKind.POST_DECR));
6565

6666
case SyntaxKind.AwaitExpression:
6767
return Await.Create(info);
@@ -254,7 +254,7 @@ internal static Expression Create(ExpressionNodeInfo info)
254254
return Switch.Create(info);
255255

256256
case SyntaxKind.SuppressNullableWarningExpression:
257-
return PostfixUnary.Create(info.SetKind(ExprKind.SUPPRESS_NULLABLE_WARNING), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
257+
return PostfixUnary.Create(info.SetKind(ExprKind.SUPPRESS_NULLABLE_WARNING));
258258

259259
case SyntaxKind.WithExpression:
260260
return WithExpression.Create(info);

csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/PostfixUnary.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,21 @@
44

55
namespace Semmle.Extraction.CSharp.Entities.Expressions
66
{
7-
internal class PostfixUnary : Expression<ExpressionSyntax>
7+
internal class PostfixUnary : Expression<PostfixUnaryExpressionSyntax>
88
{
9-
private PostfixUnary(ExpressionNodeInfo info, ExprKind kind, ExpressionSyntax operand)
9+
private PostfixUnary(ExpressionNodeInfo info, ExprKind kind)
1010
: base(info.SetKind(UnaryOperatorKind(info.Context, kind, info.Node)))
1111
{
12-
this.operand = operand;
1312
operatorKind = kind;
1413
}
1514

16-
private readonly ExpressionSyntax operand;
1715
private readonly ExprKind operatorKind;
1816

19-
public static Expression Create(ExpressionNodeInfo info, ExpressionSyntax operand) => new PostfixUnary(info, info.Kind, operand).TryPopulate();
17+
public static Expression Create(ExpressionNodeInfo info) => new PostfixUnary(info, info.Kind).TryPopulate();
2018

2119
protected override void PopulateExpression(TextWriter trapFile)
2220
{
23-
Create(Context, operand, this, 0);
21+
Create(Context, Syntax.Operand, this, 0);
2422

2523
if (Kind == ExprKind.OPERATOR_INVOCATION)
2624
{

csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/PrefixUnary.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,7 @@ private PrefixUnary(ExpressionNodeInfo info, ExprKind kind)
1414

1515
private readonly ExprKind operatorKind;
1616

17-
public static PrefixUnary Create(ExpressionNodeInfo info)
18-
{
19-
var ret = new PrefixUnary(info, info.Kind);
20-
ret.TryPopulate();
21-
return ret;
22-
}
17+
public static Expression Create(ExpressionNodeInfo info) => new PrefixUnary(info, info.Kind).TryPopulate();
2318

2419
protected override void PopulateExpression(TextWriter trapFile)
2520
{

0 commit comments

Comments
 (0)