mirror of
https://github.com/github/codeql.git
synced 2026-05-26 09:01:22 +02:00
C#: Simplify and streamline the implementation of Prefix and Postfix unary expressions.
This commit is contained in:
@@ -58,10 +58,10 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
return Invocation.Create(info);
|
||||
|
||||
case SyntaxKind.PostIncrementExpression:
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.POST_INCR), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.POST_INCR));
|
||||
|
||||
case SyntaxKind.PostDecrementExpression:
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.POST_DECR), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.POST_DECR));
|
||||
|
||||
case SyntaxKind.AwaitExpression:
|
||||
return Await.Create(info);
|
||||
@@ -254,7 +254,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
return Switch.Create(info);
|
||||
|
||||
case SyntaxKind.SuppressNullableWarningExpression:
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.SUPPRESS_NULLABLE_WARNING), ((PostfixUnaryExpressionSyntax)info.Node).Operand);
|
||||
return PostfixUnary.Create(info.SetKind(ExprKind.SUPPRESS_NULLABLE_WARNING));
|
||||
|
||||
case SyntaxKind.WithExpression:
|
||||
return WithExpression.Create(info);
|
||||
|
||||
@@ -4,23 +4,21 @@ using Semmle.Extraction.Kinds;
|
||||
|
||||
namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
{
|
||||
internal class PostfixUnary : Expression<ExpressionSyntax>
|
||||
internal class PostfixUnary : Expression<PostfixUnaryExpressionSyntax>
|
||||
{
|
||||
private PostfixUnary(ExpressionNodeInfo info, ExprKind kind, ExpressionSyntax operand)
|
||||
private PostfixUnary(ExpressionNodeInfo info, ExprKind kind)
|
||||
: base(info.SetKind(UnaryOperatorKind(info.Context, kind, info.Node)))
|
||||
{
|
||||
this.operand = operand;
|
||||
operatorKind = kind;
|
||||
}
|
||||
|
||||
private readonly ExpressionSyntax operand;
|
||||
private readonly ExprKind operatorKind;
|
||||
|
||||
public static Expression Create(ExpressionNodeInfo info, ExpressionSyntax operand) => new PostfixUnary(info, info.Kind, operand).TryPopulate();
|
||||
public static Expression Create(ExpressionNodeInfo info) => new PostfixUnary(info, info.Kind).TryPopulate();
|
||||
|
||||
protected override void PopulateExpression(TextWriter trapFile)
|
||||
{
|
||||
Create(Context, operand, this, 0);
|
||||
Create(Context, Syntax.Operand, this, 0);
|
||||
|
||||
if (Kind == ExprKind.OPERATOR_INVOCATION)
|
||||
{
|
||||
|
||||
@@ -14,12 +14,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
|
||||
|
||||
private readonly ExprKind operatorKind;
|
||||
|
||||
public static PrefixUnary Create(ExpressionNodeInfo info)
|
||||
{
|
||||
var ret = new PrefixUnary(info, info.Kind);
|
||||
ret.TryPopulate();
|
||||
return ret;
|
||||
}
|
||||
public static Expression Create(ExpressionNodeInfo info) => new PrefixUnary(info, info.Kind).TryPopulate();
|
||||
|
||||
protected override void PopulateExpression(TextWriter trapFile)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user