diff --git a/csharp/ql/test/library-tests/csharp11/Operators.cs b/csharp/ql/test/library-tests/csharp11/Operators.cs new file mode 100644 index 00000000000..9208654629b --- /dev/null +++ b/csharp/ql/test/library-tests/csharp11/Operators.cs @@ -0,0 +1,15 @@ + +public class MyClass +{ + public void M1() + { + var x1 = 1; + var x2 = x1 >>> 2; + + var y1 = -2; + var y2 = y1 >>> 3; + + var z = -4; + z >>>= 5; + } +} \ No newline at end of file diff --git a/csharp/ql/test/library-tests/csharp11/operators.expected b/csharp/ql/test/library-tests/csharp11/operators.expected new file mode 100644 index 00000000000..3b700fc2f4c --- /dev/null +++ b/csharp/ql/test/library-tests/csharp11/operators.expected @@ -0,0 +1,6 @@ +binarybitwise +| Operators.cs:7:18:7:25 | ... >>> ... | Operators.cs:7:18:7:19 | access to local variable x1 | Operators.cs:7:25:7:25 | 2 | >>> | UnsignedRightShiftExpr | +| Operators.cs:10:18:10:25 | ... >>> ... | Operators.cs:10:18:10:19 | access to local variable y1 | Operators.cs:10:25:10:25 | 3 | >>> | UnsignedRightShiftExpr | +| Operators.cs:13:9:13:16 | ... >>> ... | Operators.cs:13:9:13:9 | access to local variable z | Operators.cs:13:16:13:16 | 5 | >>> | UnsignedRightShiftExpr | +assignbitwise +| Operators.cs:13:9:13:16 | ... >>>= ... | Operators.cs:13:9:13:9 | access to local variable z | Operators.cs:13:16:13:16 | 5 | >>>= | AssignUnsighedRightShiftExpr | diff --git a/csharp/ql/test/library-tests/csharp11/operators.ql b/csharp/ql/test/library-tests/csharp11/operators.ql new file mode 100644 index 00000000000..f70897e8da5 --- /dev/null +++ b/csharp/ql/test/library-tests/csharp11/operators.ql @@ -0,0 +1,21 @@ +import csharp + +query predicate binarybitwise( + BinaryBitwiseOperation op, Expr left, Expr right, string name, string qlclass +) { + op.getFile().getStem() = "Operators" and + left = op.getLeftOperand() and + right = op.getRightOperand() and + name = op.getOperator() and + qlclass = op.getAPrimaryQlClass() +} + +query predicate assignbitwise( + AssignBitwiseOperation op, Expr left, Expr right, string name, string qlclass +) { + op.getFile().getStem() = "Operators" and + left = op.getLValue() and + right = op.getRValue() and + name = op.getOperator() and + qlclass = op.getAPrimaryQlClass() +}