From ec17a0ef4365cf4da9df67539edc0cbd1b455dbc Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 20 Jan 2025 14:12:02 +0100 Subject: [PATCH] C#: Update expected test output. --- .../dataflow/fields/FieldFlow.expected | 75 +++++++++++-------- .../dataflow/indexers/IndexerFlow.expected | 65 +++++++++++++++- .../library-tests/dispatch/CallGraph.expected | 8 +- .../library-tests/partial/Partial1.expected | 12 +-- .../partial/PartialAccessors.expected | 8 +- .../partial/PartialIndexers.expected | 2 +- .../partial/PartialProperties.expected | 2 +- .../library-tests/partial/PrintAst.expected | 65 ++++++++++------ 8 files changed, 166 insertions(+), 71 deletions(-) diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index b0118c3f427a..ff9e6ab405e6 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -502,26 +502,30 @@ edges | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | provenance | | | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | provenance | | | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:47:14:47:26 | access to property ComplexProp | provenance | | +| D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | provenance | | +| D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | provenance | | +| D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | access to field _backingField : Object | provenance | | +| D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | access to field _backingField : Object | provenance | | +| D.cs:61:9:61:11 | value : Object | D.cs:61:31:61:35 | access to parameter value : Object | provenance | | +| D.cs:61:9:61:11 | value : Object | D.cs:61:31:61:35 | access to parameter value : Object | provenance | | +| D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | provenance | | +| D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | provenance | | +| D.cs:61:31:61:35 | access to parameter value : Object | D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | provenance | | +| D.cs:61:31:61:35 | access to parameter value : Object | D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | provenance | | | D.cs:78:13:78:13 | access to local variable o : Object | D.cs:81:26:81:26 | access to local variable o : Object | provenance | | | D.cs:78:13:78:13 | access to local variable o : Object | D.cs:81:26:81:26 | access to local variable o : Object | provenance | | -| D.cs:78:13:78:13 | access to local variable o : Object | D.cs:82:26:82:26 | access to local variable o : Object | provenance | | -| D.cs:78:13:78:13 | access to local variable o : Object | D.cs:82:26:82:26 | access to local variable o : Object | provenance | | | D.cs:78:17:78:33 | call to method Source : Object | D.cs:78:13:78:13 | access to local variable o : Object | provenance | | | D.cs:78:17:78:33 | call to method Source : Object | D.cs:78:13:78:13 | access to local variable o : Object | provenance | | -| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | provenance | | -| D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | provenance | | -| D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | provenance | | -| D.cs:82:26:82:26 | access to local variable o : Object | D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | provenance | | -| D.cs:82:26:82:26 | access to local variable o : Object | D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | provenance | | -| D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | D.cs:84:14:84:27 | access to property PartialProp1 | provenance | | -| D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | D.cs:84:14:84:27 | access to property PartialProp1 | provenance | | -| D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | D.cs:85:14:85:27 | access to property PartialProp2 | provenance | | -| D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | D.cs:85:14:85:27 | access to property PartialProp2 | provenance | | +| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | provenance | | +| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | provenance | | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:61:9:61:11 | value : Object | provenance | | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:61:9:61:11 | value : Object | provenance | | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | provenance | | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | provenance | | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | provenance | | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | provenance | | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:84:14:84:27 | access to property PartialProp1 | provenance | | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:84:14:84:27 | access to property PartialProp1 | provenance | | | E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | provenance | | | E.cs:8:29:8:29 | o : Object | E.cs:11:21:11:21 | access to parameter o : Object | provenance | | | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | provenance | | @@ -1765,28 +1769,32 @@ nodes | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | semmle.label | access to local variable d : D [field trivialPropField] : Object | | D.cs:47:14:47:26 | access to property ComplexProp | semmle.label | access to property ComplexProp | | D.cs:47:14:47:26 | access to property ComplexProp | semmle.label | access to property ComplexProp | +| D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | semmle.label | this : DPartial [field _backingField] : Object | +| D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | semmle.label | this : DPartial [field _backingField] : Object | +| D.cs:60:22:60:34 | access to field _backingField : Object | semmle.label | access to field _backingField : Object | +| D.cs:60:22:60:34 | access to field _backingField : Object | semmle.label | access to field _backingField : Object | +| D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | semmle.label | this access : DPartial [field _backingField] : Object | +| D.cs:60:22:60:34 | this access : DPartial [field _backingField] : Object | semmle.label | this access : DPartial [field _backingField] : Object | +| D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | semmle.label | this [Return] : DPartial [field _backingField] : Object | +| D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | semmle.label | this [Return] : DPartial [field _backingField] : Object | +| D.cs:61:9:61:11 | value : Object | semmle.label | value : Object | +| D.cs:61:9:61:11 | value : Object | semmle.label | value : Object | +| D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | semmle.label | [post] this access : DPartial [field _backingField] : Object | +| D.cs:61:15:61:27 | [post] this access : DPartial [field _backingField] : Object | semmle.label | [post] this access : DPartial [field _backingField] : Object | +| D.cs:61:31:61:35 | access to parameter value : Object | semmle.label | access to parameter value : Object | +| D.cs:61:31:61:35 | access to parameter value : Object | semmle.label | access to parameter value : Object | | D.cs:78:13:78:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | | D.cs:78:13:78:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | | D.cs:78:17:78:33 | call to method Source : Object | semmle.label | call to method Source : Object | | D.cs:78:17:78:33 | call to method Source : Object | semmle.label | call to method Source : Object | -| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | [post] access to local variable d : DPartial [property PartialProp1] : Object | -| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | [post] access to local variable d : DPartial [property PartialProp1] : Object | +| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | semmle.label | [post] access to local variable d : DPartial [field _backingField] : Object | +| D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | semmle.label | [post] access to local variable d : DPartial [field _backingField] : Object | | D.cs:81:26:81:26 | access to local variable o : Object | semmle.label | access to local variable o : Object | | D.cs:81:26:81:26 | access to local variable o : Object | semmle.label | access to local variable o : Object | -| D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | semmle.label | [post] access to local variable d : DPartial [property PartialProp2] : Object | -| D.cs:82:9:82:9 | [post] access to local variable d : DPartial [property PartialProp2] : Object | semmle.label | [post] access to local variable d : DPartial [property PartialProp2] : Object | -| D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | access to local variable d : DPartial [property PartialProp1] : Object | -| D.cs:82:9:82:9 | access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | access to local variable d : DPartial [property PartialProp1] : Object | -| D.cs:82:26:82:26 | access to local variable o : Object | semmle.label | access to local variable o : Object | -| D.cs:82:26:82:26 | access to local variable o : Object | semmle.label | access to local variable o : Object | -| D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | access to local variable d : DPartial [property PartialProp1] : Object | -| D.cs:84:14:84:14 | access to local variable d : DPartial [property PartialProp1] : Object | semmle.label | access to local variable d : DPartial [property PartialProp1] : Object | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | semmle.label | access to local variable d : DPartial [field _backingField] : Object | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | semmle.label | access to local variable d : DPartial [field _backingField] : Object | | D.cs:84:14:84:27 | access to property PartialProp1 | semmle.label | access to property PartialProp1 | | D.cs:84:14:84:27 | access to property PartialProp1 | semmle.label | access to property PartialProp1 | -| D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | semmle.label | access to local variable d : DPartial [property PartialProp2] : Object | -| D.cs:85:14:85:14 | access to local variable d : DPartial [property PartialProp2] : Object | semmle.label | access to local variable d : DPartial [property PartialProp2] : Object | -| D.cs:85:14:85:27 | access to property PartialProp2 | semmle.label | access to property PartialProp2 | -| D.cs:85:14:85:27 | access to property PartialProp2 | semmle.label | access to property PartialProp2 | | E.cs:8:29:8:29 | o : Object | semmle.label | o : Object | | E.cs:8:29:8:29 | o : Object | semmle.label | o : Object | | E.cs:11:9:11:11 | [post] access to local variable ret : S [field Field] : Object | semmle.label | [post] access to local variable ret : S [field Field] : Object | @@ -2624,6 +2632,10 @@ subpaths | D.cs:45:14:45:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:8:9:8:11 | this : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | D.cs:45:14:45:26 | access to property TrivialProp | | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | D.cs:47:14:47:26 | access to property ComplexProp | | D.cs:47:14:47:14 | access to local variable d : D [field trivialPropField] : Object | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | D.cs:47:14:47:26 | access to property ComplexProp | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:61:9:61:11 | value : Object | D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | +| D.cs:81:26:81:26 | access to local variable o : Object | D.cs:61:9:61:11 | value : Object | D.cs:61:9:61:11 | this [Return] : DPartial [field _backingField] : Object | D.cs:81:9:81:9 | [post] access to local variable d : DPartial [field _backingField] : Object | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | access to field _backingField : Object | D.cs:84:14:84:27 | access to property PartialProp1 | +| D.cs:84:14:84:14 | access to local variable d : DPartial [field _backingField] : Object | D.cs:60:9:60:11 | this : DPartial [field _backingField] : Object | D.cs:60:22:60:34 | access to field _backingField : Object | D.cs:84:14:84:27 | access to property PartialProp1 | | E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | | E.cs:23:25:23:25 | access to local variable o : Object | E.cs:8:29:8:29 | o : Object | E.cs:12:16:12:18 | access to local variable ret : S [field Field] : Object | E.cs:23:17:23:26 | call to method CreateS : S [field Field] : Object | | E.cs:55:29:55:33 | access to local variable taint : Object | E.cs:43:46:43:46 | o : Object | E.cs:43:36:43:36 | s [Return] : RefS [field RefField] : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | @@ -2675,7 +2687,6 @@ subpaths | J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | | J.cs:80:35:80:35 | access to local variable o : Object | J.cs:14:40:14:43 | prop : Object | J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | testFailures -| D.cs:85:14:85:27 | access to property PartialProp2 | Unexpected result: hasValueFlow=1 | #select | A.cs:7:14:7:16 | access to field c | A.cs:5:17:5:28 | call to method Source : C | A.cs:7:14:7:16 | access to field c | $@ | A.cs:5:17:5:28 | call to method Source : C | call to method Source : C | | A.cs:7:14:7:16 | access to field c | A.cs:5:17:5:28 | call to method Source : C | A.cs:7:14:7:16 | access to field c | $@ | A.cs:5:17:5:28 | call to method Source : C | call to method Source : C | @@ -2735,8 +2746,6 @@ testFailures | D.cs:47:14:47:26 | access to property ComplexProp | D.cs:43:32:43:48 | call to method Source : Object | D.cs:47:14:47:26 | access to property ComplexProp | $@ | D.cs:43:32:43:48 | call to method Source : Object | call to method Source : Object | | D.cs:84:14:84:27 | access to property PartialProp1 | D.cs:78:17:78:33 | call to method Source : Object | D.cs:84:14:84:27 | access to property PartialProp1 | $@ | D.cs:78:17:78:33 | call to method Source : Object | call to method Source : Object | | D.cs:84:14:84:27 | access to property PartialProp1 | D.cs:78:17:78:33 | call to method Source : Object | D.cs:84:14:84:27 | access to property PartialProp1 | $@ | D.cs:78:17:78:33 | call to method Source : Object | call to method Source : Object | -| D.cs:85:14:85:27 | access to property PartialProp2 | D.cs:78:17:78:33 | call to method Source : Object | D.cs:85:14:85:27 | access to property PartialProp2 | $@ | D.cs:78:17:78:33 | call to method Source : Object | call to method Source : Object | -| D.cs:85:14:85:27 | access to property PartialProp2 | D.cs:78:17:78:33 | call to method Source : Object | D.cs:85:14:85:27 | access to property PartialProp2 | $@ | D.cs:78:17:78:33 | call to method Source : Object | call to method Source : Object | | E.cs:24:14:24:20 | access to field Field | E.cs:22:17:22:33 | call to method Source : Object | E.cs:24:14:24:20 | access to field Field | $@ | E.cs:22:17:22:33 | call to method Source : Object | call to method Source : Object | | E.cs:24:14:24:20 | access to field Field | E.cs:22:17:22:33 | call to method Source : Object | E.cs:24:14:24:20 | access to field Field | $@ | E.cs:22:17:22:33 | call to method Source : Object | call to method Source : Object | | E.cs:57:14:57:26 | access to field RefField | E.cs:54:21:54:37 | call to method Source : Object | E.cs:57:14:57:26 | access to field RefField | $@ | E.cs:54:21:54:37 | call to method Source : Object | call to method Source : Object | diff --git a/csharp/ql/test/library-tests/dataflow/indexers/IndexerFlow.expected b/csharp/ql/test/library-tests/dataflow/indexers/IndexerFlow.expected index c28cf5dd9c95..b287d45a03e9 100644 --- a/csharp/ql/test/library-tests/dataflow/indexers/IndexerFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/indexers/IndexerFlow.expected @@ -1,7 +1,70 @@ models edges +| Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | Indexers.cs:6:22:6:41 | access to array element : Object | provenance | | +| Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | Indexers.cs:6:22:6:41 | access to array element : Object | provenance | | +| Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | provenance | | +| Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | provenance | | +| Indexers.cs:7:9:7:11 | value : Object | Indexers.cs:7:38:7:42 | access to parameter value : Object | provenance | | +| Indexers.cs:7:9:7:11 | value : Object | Indexers.cs:7:38:7:42 | access to parameter value : Object | provenance | | +| Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:7:38:7:42 | access to parameter value : Object | Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | provenance | | +| Indexers.cs:7:38:7:42 | access to parameter value : Object | Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | provenance | | +| Indexers.cs:34:13:34:13 | access to local variable o : Object | Indexers.cs:37:17:37:17 | access to local variable o : Object | provenance | | +| Indexers.cs:34:13:34:13 | access to local variable o : Object | Indexers.cs:37:17:37:17 | access to local variable o : Object | provenance | | +| Indexers.cs:34:17:34:33 | call to method Source : Object | Indexers.cs:34:13:34:13 | access to local variable o : Object | provenance | | +| Indexers.cs:34:17:34:33 | call to method Source : Object | Indexers.cs:34:13:34:13 | access to local variable o : Object | provenance | | +| Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:7:9:7:11 | value : Object | provenance | | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:7:9:7:11 | value : Object | provenance | | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | provenance | | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:38:14:38:18 | access to indexer | provenance | | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:38:14:38:18 | access to indexer | provenance | | nodes +| Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | semmle.label | this : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | semmle.label | this : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | semmle.label | access to field _backingArray : Object[] [element] : Object | +| Indexers.cs:6:22:6:34 | access to field _backingArray : Object[] [element] : Object | semmle.label | access to field _backingArray : Object[] [element] : Object | +| Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | semmle.label | this access : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:6:22:6:34 | this access : Partial1 [field _backingArray, element] : Object | semmle.label | this access : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:6:22:6:41 | access to array element : Object | semmle.label | access to array element : Object | +| Indexers.cs:6:22:6:41 | access to array element : Object | semmle.label | access to array element : Object | +| Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | semmle.label | this [Return] : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | semmle.label | this [Return] : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:7:9:7:11 | value : Object | semmle.label | value : Object | +| Indexers.cs:7:9:7:11 | value : Object | semmle.label | value : Object | +| Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | semmle.label | [post] access to field _backingArray : Object[] [element] : Object | +| Indexers.cs:7:15:7:27 | [post] access to field _backingArray : Object[] [element] : Object | semmle.label | [post] access to field _backingArray : Object[] [element] : Object | +| Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | semmle.label | [post] this access : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:7:15:7:27 | [post] this access : Partial1 [field _backingArray, element] : Object | semmle.label | [post] this access : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:7:38:7:42 | access to parameter value : Object | semmle.label | access to parameter value : Object | +| Indexers.cs:7:38:7:42 | access to parameter value : Object | semmle.label | access to parameter value : Object | +| Indexers.cs:34:13:34:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Indexers.cs:34:13:34:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Indexers.cs:34:17:34:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Indexers.cs:34:17:34:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | semmle.label | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | semmle.label | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | semmle.label | access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | semmle.label | access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:38:14:38:18 | access to indexer | semmle.label | access to indexer | +| Indexers.cs:38:14:38:18 | access to indexer | semmle.label | access to indexer | subpaths +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:7:9:7:11 | value : Object | Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:37:17:37:17 | access to local variable o : Object | Indexers.cs:7:9:7:11 | value : Object | Indexers.cs:7:9:7:11 | this [Return] : Partial1 [field _backingArray, element] : Object | Indexers.cs:37:9:37:10 | [post] access to local variable p1 : Partial1 [field _backingArray, element] : Object | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:41 | access to array element : Object | Indexers.cs:38:14:38:18 | access to indexer | +| Indexers.cs:38:14:38:15 | access to local variable p1 : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:9:6:11 | this : Partial1 [field _backingArray, element] : Object | Indexers.cs:6:22:6:41 | access to array element : Object | Indexers.cs:38:14:38:18 | access to indexer | testFailures -| Indexers.cs:38:22:38:40 | // ... | Missing result: hasValueFlow=1 | #select +| Indexers.cs:38:14:38:18 | access to indexer | Indexers.cs:34:17:34:33 | call to method Source : Object | Indexers.cs:38:14:38:18 | access to indexer | $@ | Indexers.cs:34:17:34:33 | call to method Source : Object | call to method Source : Object | +| Indexers.cs:38:14:38:18 | access to indexer | Indexers.cs:34:17:34:33 | call to method Source : Object | Indexers.cs:38:14:38:18 | access to indexer | $@ | Indexers.cs:34:17:34:33 | call to method Source : Object | call to method Source : Object | diff --git a/csharp/ql/test/library-tests/dispatch/CallGraph.expected b/csharp/ql/test/library-tests/dispatch/CallGraph.expected index 4d7318a11e06..ed48707a1bd1 100644 --- a/csharp/ql/test/library-tests/dispatch/CallGraph.expected +++ b/csharp/ql/test/library-tests/dispatch/CallGraph.expected @@ -262,7 +262,7 @@ | ViableCallable.cs:609:17:609:23 | Run1`1 | ViableCallable.cs:601:21:601:21 | M | | ViableCallable.cs:615:17:615:23 | Run2`1 | ViableCallable.cs:601:21:601:21 | M | | ViableCallable.cs:615:17:615:23 | Run2`1 | ViableCallable.cs:606:21:606:21 | M | -| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:626:42:626:44 | get_Property | -| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:626:47:626:49 | set_Property | -| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:628:49:628:51 | get_Item | -| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:628:54:628:56 | set_Item | +| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:633:42:633:44 | get_Property | +| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:633:63:633:65 | set_Property | +| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:635:49:635:51 | get_Item | +| ViableCallable.cs:638:17:638:20 | Run1 | ViableCallable.cs:635:70:635:72 | set_Item | diff --git a/csharp/ql/test/library-tests/partial/Partial1.expected b/csharp/ql/test/library-tests/partial/Partial1.expected index 7f888c73e35f..af7be1359143 100644 --- a/csharp/ql/test/library-tests/partial/Partial1.expected +++ b/csharp/ql/test/library-tests/partial/Partial1.expected @@ -1,12 +1,12 @@ | Partial.cs:1:15:1:26 | TwoPartClass | | Partial.cs:4:18:4:42 | PartialMethodWithoutBody1 | -| Partial.cs:7:27:7:42 | PartialProperty1 | -| Partial.cs:7:46:7:48 | get_PartialProperty1 | -| Partial.cs:7:51:7:53 | set_PartialProperty1 | -| Partial.cs:9:27:9:30 | Item | -| Partial.cs:9:45:9:47 | get_Item | -| Partial.cs:9:50:9:52 | set_Item | | Partial.cs:12:15:12:26 | TwoPartClass | | Partial.cs:14:18:14:39 | PartialMethodWithBody1 | +| Partial.cs:18:27:18:42 | PartialProperty1 | +| Partial.cs:20:9:20:11 | get_PartialProperty1 | +| Partial.cs:21:9:21:11 | set_PartialProperty1 | +| Partial.cs:25:27:25:30 | Item | +| Partial.cs:27:9:27:11 | get_Item | +| Partial.cs:28:9:28:11 | set_Item | | Partial.cs:32:15:32:33 | OnePartPartialClass | | Partial.cs:34:18:34:42 | PartialMethodWithoutBody2 | diff --git a/csharp/ql/test/library-tests/partial/PartialAccessors.expected b/csharp/ql/test/library-tests/partial/PartialAccessors.expected index b06879bb0283..2c69ed620ae6 100644 --- a/csharp/ql/test/library-tests/partial/PartialAccessors.expected +++ b/csharp/ql/test/library-tests/partial/PartialAccessors.expected @@ -1,7 +1,7 @@ -| Partial.cs:7:46:7:48 | get_PartialProperty1 | true | -| Partial.cs:7:51:7:53 | set_PartialProperty1 | true | -| Partial.cs:9:45:9:47 | get_Item | true | -| Partial.cs:9:50:9:52 | set_Item | true | +| Partial.cs:20:9:20:11 | get_PartialProperty1 | true | +| Partial.cs:21:9:21:11 | set_PartialProperty1 | true | +| Partial.cs:27:9:27:11 | get_Item | true | +| Partial.cs:28:9:28:11 | set_Item | true | | Partial.cs:41:30:41:32 | get_Property | false | | Partial.cs:41:35:41:37 | set_Property | false | | Partial.cs:44:9:44:11 | get_Item | false | diff --git a/csharp/ql/test/library-tests/partial/PartialIndexers.expected b/csharp/ql/test/library-tests/partial/PartialIndexers.expected index e047e4161ac9..151ed5aad03a 100644 --- a/csharp/ql/test/library-tests/partial/PartialIndexers.expected +++ b/csharp/ql/test/library-tests/partial/PartialIndexers.expected @@ -1,2 +1,2 @@ -| Partial.cs:9:27:9:30 | Item | true | +| Partial.cs:25:27:25:30 | Item | true | | Partial.cs:42:19:42:22 | Item | false | diff --git a/csharp/ql/test/library-tests/partial/PartialProperties.expected b/csharp/ql/test/library-tests/partial/PartialProperties.expected index 77f1105497ab..8d2dfc01e74a 100644 --- a/csharp/ql/test/library-tests/partial/PartialProperties.expected +++ b/csharp/ql/test/library-tests/partial/PartialProperties.expected @@ -1,2 +1,2 @@ -| Partial.cs:7:27:7:42 | PartialProperty1 | true | +| Partial.cs:18:27:18:42 | PartialProperty1 | true | | Partial.cs:41:19:41:26 | Property | false | diff --git a/csharp/ql/test/library-tests/partial/PrintAst.expected b/csharp/ql/test/library-tests/partial/PrintAst.expected index 3ba40a50a78b..8d9da42fc11c 100644 --- a/csharp/ql/test/library-tests/partial/PrintAst.expected +++ b/csharp/ql/test/library-tests/partial/PrintAst.expected @@ -5,35 +5,58 @@ Partial.cs: # 5| 6: [Method] Method2 # 5| -1: [TypeMention] Void # 5| 4: [BlockStmt] {...} -# 7| 7: [Property] PartialProperty1 +# 14| 7: [Method] PartialMethodWithBody1 +# 3| -1: [TypeMention] Void +# 14| 4: [BlockStmt] {...} +# 15| 8: [Method] Method3 +# 15| -1: [TypeMention] Void +# 15| 4: [BlockStmt] {...} +# 16| 9: [Field] _backingField +# 16| -1: [TypeMention] object +# 18| 10: [Property] PartialProperty1 # 7| -1: [TypeMention] object -# 7| 3: [Getter] get_PartialProperty1 -# 7| 4: [Setter] set_PartialProperty1 +# 18| -1: [TypeMention] object +# 20| 3: [Getter] get_PartialProperty1 +# 20| 4: [BlockStmt] {...} +# 20| 0: [ReturnStmt] return ...; +# 20| 0: [FieldAccess] access to field _backingField +# 21| 4: [Setter] set_PartialProperty1 #-----| 2: (Parameters) -# 7| 0: [Parameter] value -# 9| 8: [Indexer] Item +# 21| 0: [Parameter] value +# 21| 4: [BlockStmt] {...} +# 21| 0: [ExprStmt] ...; +# 21| 0: [AssignExpr] ... = ... +# 21| 0: [FieldAccess] access to field _backingField +# 21| 1: [ParameterAccess] access to parameter value +# 23| 11: [Field] _backingArray +# 23| -1: [TypeMention] Object[] +# 23| 1: [TypeMention] object +# 25| 12: [Indexer] Item # 9| -1: [TypeMention] object +# 25| -1: [TypeMention] object #-----| 1: (Parameters) # 9| 0: [Parameter] index # 9| -1: [TypeMention] int -# 9| 3: [Getter] get_Item +# 25| -1: [TypeMention] int +# 27| 3: [Getter] get_Item #-----| 2: (Parameters) -# 9| 0: [Parameter] index -# 9| 4: [Setter] set_Item +# 25| 0: [Parameter] index +# 27| 4: [BlockStmt] {...} +# 27| 0: [ReturnStmt] return ...; +# 27| 0: [ArrayAccess] access to array element +# 27| -1: [FieldAccess] access to field _backingArray +# 27| 0: [ParameterAccess] access to parameter index +# 28| 4: [Setter] set_Item #-----| 2: (Parameters) -# 9| 0: [Parameter] index -# 9| 1: [Parameter] value -# 14| 9: [Method] PartialMethodWithBody1 -# 3| -1: [TypeMention] Void -# 14| 4: [BlockStmt] {...} -# 15| 10: [Method] Method3 -# 15| -1: [TypeMention] Void -# 15| 4: [BlockStmt] {...} -# 16| 11: [Field] _backingField -# 16| -1: [TypeMention] object -# 23| 12: [Field] _backingArray -# 23| -1: [TypeMention] Object[] -# 23| 1: [TypeMention] object +# 25| 0: [Parameter] index +# 28| 1: [Parameter] value +# 28| 4: [BlockStmt] {...} +# 28| 0: [ExprStmt] ...; +# 28| 0: [AssignExpr] ... = ... +# 28| 0: [ArrayAccess] access to array element +# 28| -1: [FieldAccess] access to field _backingArray +# 28| 0: [ParameterAccess] access to parameter index +# 28| 1: [ParameterAccess] access to parameter value # 32| [Class] OnePartPartialClass # 34| 5: [Method] PartialMethodWithoutBody2 # 34| -1: [TypeMention] Void