Skip to content

Commit c2f91a5

Browse files
authored
Merge pull request github#16104 from hvitved/csharp/more-compiler-generated
C#: Mark more expressions as compiler generated
2 parents fc02938 + 813f5b9 commit c2f91a5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+189
-305
lines changed

csharp/extractor/Semmle.Extraction.CSharp/Entities/Expression.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,14 @@ public static string ValueAsString(object? value)
100100
/// <param name="child">The child index.</param>
101101
/// <param name="type">A type hint.</param>
102102
/// <returns>The new expression.</returns>
103-
public static Expression Create(Context cx, ExpressionSyntax node, IExpressionParentEntity parent, int child) =>
104-
CreateFromNode(new ExpressionNodeInfo(cx, node, parent, child));
103+
public static Expression Create(Context cx, ExpressionSyntax node, IExpressionParentEntity parent, int child, Boolean isCompilerGenerated = false)
104+
{
105+
var info = new ExpressionNodeInfo(cx, node, parent, child)
106+
{
107+
IsCompilerGenerated = isCompilerGenerated
108+
};
109+
return CreateFromNode(info);
110+
}
105111

106112
public static Expression CreateFromNode(ExpressionNodeInfo info) => Expressions.ImplicitCast.Create(info);
107113

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public static Expression CreateGenerated(Context cx, IExpressionParentEntity par
9797
ExprKind.ARRAY_CREATION,
9898
parent,
9999
childIndex,
100-
true,
100+
isCompilerGenerated: true,
101101
null);
102102

103103
var arrayCreation = new Expression(info);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ protected override void PopulateExpression(TextWriter trapFile)
2626
if (operatorKind.HasValue)
2727
{
2828
// Convert assignment such as `a += b` into `a = a + b`.
29-
var simpleAssignExpr = new Expression(new ExpressionInfo(Context, Type, Location, ExprKind.SIMPLE_ASSIGN, this, 2, false, null));
29+
var simpleAssignExpr = new Expression(new ExpressionInfo(Context, Type, Location, ExprKind.SIMPLE_ASSIGN, this, 2, isCompilerGenerated: true, null));
3030
Create(Context, Syntax.Left, simpleAssignExpr, 1);
31-
var opexpr = new Expression(new ExpressionInfo(Context, Type, Location, operatorKind.Value, simpleAssignExpr, 0, false, null));
32-
Create(Context, Syntax.Left, opexpr, 0);
31+
var opexpr = new Expression(new ExpressionInfo(Context, Type, Location, operatorKind.Value, simpleAssignExpr, 0, isCompilerGenerated: true, null));
32+
Create(Context, Syntax.Left, opexpr, 0, isCompilerGenerated: true);
3333
Create(Context, Syntax.Right, opexpr, 1);
3434
opexpr.OperatorCall(trapFile, Syntax);
3535
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static Expression CreateGenerated(Context cx, IExpressionParentEntity par
4141
ExprKind.CAST,
4242
parent,
4343
childIndex,
44-
true,
44+
isCompilerGenerated: true,
4545
ValueAsString(value));
4646

4747
var ret = new Expression(info);

csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Collections/Spread.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
66
internal class Spread : Expression
77
{
88
public Spread(Context cx, SpreadElementSyntax syntax, IExpressionParentEntity parent, int child) :
9-
base(new ExpressionInfo(cx, null, cx.CreateLocation(syntax.GetLocation()), ExprKind.SPREAD_ELEMENT, parent, child, false, null))
9+
base(new ExpressionInfo(cx, null, cx.CreateLocation(syntax.GetLocation()), ExprKind.SPREAD_ELEMENT, parent, child, isCompilerGenerated: false, null))
1010
{
1111
Create(cx, syntax.Expression, this, 0);
1212
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public static Expression CreateGenerated(Context cx, IExpressionParentEntity par
2424
ExprKind.DEFAULT,
2525
parent,
2626
childIndex,
27-
true,
27+
isCompilerGenerated: true,
2828
value);
2929

3030
return new Expression(info);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public Discard(ExpressionNodeInfo info) : base(info.SetKind(ExprKind.DISCARD))
1111
}
1212

1313
private Discard(Context cx, CSharpSyntaxNode syntax, IExpressionParentEntity parent, int child) :
14-
base(new ExpressionInfo(cx, cx.GetType(syntax), cx.CreateLocation(syntax.GetLocation()), ExprKind.DISCARD, parent, child, false, null))
14+
base(new ExpressionInfo(cx, cx.GetType(syntax), cx.CreateLocation(syntax.GetLocation()), ExprKind.DISCARD, parent, child, isCompilerGenerated: false, null))
1515
{
1616
}
1717

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ protected override void PopulateExpression(TextWriter trapFile)
2222
if (Kind == ExprKind.POINTER_INDIRECTION)
2323
{
2424
var qualifierInfo = new ExpressionNodeInfo(Context, qualifier, this, 0);
25-
var add = new Expression(new ExpressionInfo(Context, qualifierInfo.Type, Location, ExprKind.ADD, this, 0, false, null));
25+
var add = new Expression(new ExpressionInfo(Context, qualifierInfo.Type, Location, ExprKind.ADD, this, 0, isCompilerGenerated: false, null));
2626
qualifierInfo.SetParent(add, 0);
2727
CreateFromNode(qualifierInfo);
2828
PopulateArguments(trapFile, argumentList, 1);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ public Expression Expr
1414
}
1515

1616
private ImplicitCast(ExpressionNodeInfo info)
17-
: base(new ExpressionInfo(info.Context, info.ConvertedType, info.Location, ExprKind.CAST, info.Parent, info.Child, true, info.ExprValue))
17+
: base(new ExpressionInfo(info.Context, info.ConvertedType, info.Location, ExprKind.CAST, info.Parent, info.Child, isCompilerGenerated: true, info.ExprValue))
1818
{
1919
Expr = Factory.Create(new ExpressionNodeInfo(Context, info.Node, this, 0));
2020
}
2121

2222
private ImplicitCast(ExpressionNodeInfo info, IMethodSymbol method)
23-
: base(new ExpressionInfo(info.Context, info.ConvertedType, info.Location, ExprKind.OPERATOR_INVOCATION, info.Parent, info.Child, true, info.ExprValue))
23+
: base(new ExpressionInfo(info.Context, info.ConvertedType, info.Location, ExprKind.OPERATOR_INVOCATION, info.Parent, info.Child, isCompilerGenerated: true, info.ExprValue))
2424
{
2525
Expr = Factory.Create(info.SetParent(this, 0));
2626

@@ -65,7 +65,7 @@ ExpressionInfo create(ExprKind kind, string? v) =>
6565
kind,
6666
parent,
6767
childIndex,
68-
true,
68+
isCompilerGenerated: true,
6969
v);
7070

7171
var method = GetImplicitConversionMethod(type, value);
@@ -93,7 +93,7 @@ public static Expression CreateGenerated(Context cx, IExpressionParentEntity par
9393
ExprKind.CAST,
9494
parent,
9595
childIndex,
96-
true,
96+
isCompilerGenerated: true,
9797
ValueAsString(value));
9898

9999
return new Expression(info);

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static Expression CreateGenerated(Context cx, IExpressionParentEntity par
4545
ExprKind.ARRAY_INIT,
4646
parent,
4747
index,
48-
true,
48+
isCompilerGenerated: true,
4949
null);
5050

5151
return new Expression(info);
@@ -132,7 +132,7 @@ protected override void PopulateExpression(TextWriter trapFile)
132132
var addMethod = Method.Create(Context, collectionInfo.Symbol as IMethodSymbol);
133133
var voidType = AnnotatedTypeSymbol.CreateNotAnnotated(Context.Compilation.GetSpecialType(SpecialType.System_Void));
134134

135-
var invocation = new Expression(new ExpressionInfo(Context, voidType, Context.CreateLocation(i.GetLocation()), ExprKind.METHOD_INVOCATION, this, child++, false, null));
135+
var invocation = new Expression(new ExpressionInfo(Context, voidType, Context.CreateLocation(i.GetLocation()), ExprKind.METHOD_INVOCATION, this, child++, isCompilerGenerated: true, null));
136136

137137
if (addMethod is not null)
138138
trapFile.expr_call(invocation, addMethod);

0 commit comments

Comments
 (0)