Merge pull request #4094 from tamasvajk/feature/comp-gen-array-size

C# Compiler generated flag for length arguments of implicitly sized arrays
This commit is contained in:
Tom Hvitved
2020-08-18 13:43:02 +02:00
committed by GitHub
3 changed files with 18 additions and 2 deletions

View File

@@ -17,7 +17,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
protected abstract ArrayTypeSyntax TypeSyntax { get; }
public abstract InitializerExpressionSyntax Initializer { get; }
public abstract InitializerExpressionSyntax Initializer { get; }
protected override void PopulateExpression(TextWriter trapFile)
{
@@ -48,7 +48,7 @@ namespace Semmle.Extraction.CSharp.Entities.Expressions
ExprKind.INT_LITERAL,
this,
child,
false,
true,
size.ToString());
new Expression(info);

View File

@@ -0,0 +1,3 @@
| expressions.cs:168:27:168:44 | array creation of type Object[] | expressions.cs:168:27:168:44 | 1 | true |
| expressions.cs:409:23:409:65 | array creation of type Int32[,] | expressions.cs:409:23:409:65 | 3 | true |
| expressions.cs:409:23:409:65 | array creation of type Int32[,] | expressions.cs:409:23:409:65 | 3 | true |

View File

@@ -0,0 +1,13 @@
/**
* @name Test for array creations
*/
import csharp
private boolean isImplicit(Expr expr) {
if expr.isImplicit() then result = true else result = false
}
from ArrayCreation ac, Expr expr
where ac.isImplicitlySized() and not ac.isImplicitlyTyped() and expr = ac.getALengthArgument()
select ac, expr, isImplicit(expr)