From 5dbdc9fdfd960a4bdbf905cbfa2bbcffe42a1e68 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 4 Dec 2024 18:44:04 +0100 Subject: [PATCH] Update expected test output --- .../DecompressionBombs.expected | 98 ++- .../dataflow-tests/test-source-sink.expected | 1 + .../dataflow/dataflow-tests/test.expected | 1 - .../dataflow/fields/flow.expected | 3 +- .../dataflow/fields/ir-path-flow.expected | 356 ++++------ .../dataflow/fields/path-flow.expected | 347 ++++----- .../dataflow/taint-tests/taint.expected | 28 - .../semmle/ExecTainted/ExecTainted.expected | 12 +- .../SAMATE/OverrunWriteProductFlow.expected | 8 +- .../semmle/tests/OverflowDestination.expected | 6 +- .../semmle/tests/ExposedSystemData.expected | 6 +- .../collections/CollectionFlow.expected | 12 +- .../constructors/ConstructorFlow.expected | 82 +-- .../dataflow/fields/FieldFlow.expected | 604 ++++++---------- .../dataflow/global/DataFlowPath.expected | 44 +- .../global/TaintTrackingPath.expected | 56 +- .../dataflow/tuples/Tuples.expected | 12 +- .../DecompressionBombs.expected | 215 ++++++ .../frameworks/GoMicro/LogInjection.expected | 29 +- .../frameworks/Twirp/RequestForgery.expected | 223 +++++- .../UnhandledCloseWritableHandle.expected | 12 + .../CWE-078/CommandInjection.expected | 93 --- .../CWE-312/CleartextLogging.expected | 16 + .../CWE-322/InsecureHostKeyCallback.expected | 67 +- .../Security/CWE-327/UnsafeTLS.expected | 12 - .../Security/CWE-640/EmailInjection.expected | 17 +- .../DisabledRevocationChecking.expected | 8 +- .../CWE-400/LocalThreadResourceAbuse.expected | 8 +- .../CWE-400/ThreadResourceAbuse.expected | 18 +- .../dataflow/capture/inlinetest.expected | 194 ++--- .../dataflow/capture/test.expected | 2 - .../dataflow/fluent-methods/flow.expected | 42 +- .../dataflow/partial/testRev.expected | 12 +- .../apache-collections/test.expected | 336 ++++----- .../apache-commons-lang3/flow.expected | 672 +++++++++++++++++- .../frameworks/spring/cache/test.expected | 26 +- .../frameworks/spring/data/test.expected | 8 +- .../frameworks/spring/webutil/test.expected | 8 +- .../frameworks/stream/test.expected | 91 +-- .../semmle/tests/ArithmeticTainted.expected | 8 +- .../coverage/NormalDataflowTest.expected | 1 + .../library-tests/dataflow/erb/erb.expected | 18 +- .../dataflow/global/Flow.expected | 88 +-- .../dataflow/params/params-flow.expected | 172 ++++- .../action_controller/params-flow.expected | 6 +- .../dataflow/dataflow/DataFlow.expected | 96 +-- .../dataflow/taint/core/Taint.expected | 22 +- .../CWE-311/CleartextStorageDatabase.expected | 58 +- .../CWE-321/HardcodedEncryptionKey.expected | 10 +- .../Security/CWE-757/InsecureTLS.expected | 56 +- 50 files changed, 2631 insertions(+), 1689 deletions(-) diff --git a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-409/DecompressionBombs/DecompressionBombs.expected b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-409/DecompressionBombs/DecompressionBombs.expected index b372493c5baf5..449cb05a81e7b 100644 --- a/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-409/DecompressionBombs/DecompressionBombs.expected +++ b/cpp/ql/test/experimental/query-tests/Security/CWE/CWE-409/DecompressionBombs/DecompressionBombs.expected @@ -49,25 +49,33 @@ edges | minizipTest.cpp:24:41:24:47 | *access to array | minizipTest.cpp:24:29:24:38 | **zip_reader | provenance | Config | | minizipTest.cpp:24:41:24:47 | *access to array | minizipTest.cpp:24:29:24:38 | *zip_reader | provenance | Config | | zlibTest.cpp:16:26:16:30 | *input | zlibTest.cpp:20:25:20:39 | *input | provenance | | +| zlibTest.cpp:16:26:16:30 | *input [Reverse] | zlibTest.cpp:20:25:20:39 | *input [Reverse] | provenance | | | zlibTest.cpp:20:25:20:39 | *input | zlibTest.cpp:16:26:16:30 | *input | provenance | | | zlibTest.cpp:20:25:20:39 | *input | zlibTest.cpp:24:17:24:26 | & ... | provenance | Config | | zlibTest.cpp:20:25:20:39 | *input | zlibTest.cpp:25:13:25:22 | & ... | provenance | Config | +| zlibTest.cpp:20:25:20:39 | *input [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | provenance | | | zlibTest.cpp:24:17:24:26 | & ... | zlibTest.cpp:25:13:25:22 | & ... | provenance | | | zlibTest.cpp:37:25:37:32 | *fileName | zlibTest.cpp:38:29:38:36 | *fileName | provenance | | +| zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | zlibTest.cpp:38:29:38:36 | *fileName [Reverse] | provenance | | | zlibTest.cpp:38:22:38:27 | call to gzopen | zlibTest.cpp:38:22:38:27 | call to gzopen | provenance | | | zlibTest.cpp:38:22:38:27 | call to gzopen | zlibTest.cpp:41:20:41:26 | inFileZ | provenance | | | zlibTest.cpp:38:29:38:36 | *fileName | zlibTest.cpp:37:25:37:32 | *fileName | provenance | | | zlibTest.cpp:38:29:38:36 | *fileName | zlibTest.cpp:38:22:38:27 | call to gzopen | provenance | Config | +| zlibTest.cpp:38:29:38:36 | *fileName [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | provenance | | | zlibTest.cpp:47:26:47:33 | *fileName | zlibTest.cpp:48:29:48:36 | *fileName | provenance | | +| zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | zlibTest.cpp:48:29:48:36 | *fileName [Reverse] | provenance | | | zlibTest.cpp:48:22:48:27 | call to gzopen | zlibTest.cpp:48:22:48:27 | call to gzopen | provenance | | | zlibTest.cpp:48:22:48:27 | call to gzopen | zlibTest.cpp:51:38:51:44 | inFileZ | provenance | | | zlibTest.cpp:48:29:48:36 | *fileName | zlibTest.cpp:47:26:47:33 | *fileName | provenance | | | zlibTest.cpp:48:29:48:36 | *fileName | zlibTest.cpp:48:22:48:27 | call to gzopen | provenance | Config | +| zlibTest.cpp:48:29:48:36 | *fileName [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | provenance | | | zlibTest.cpp:57:25:57:32 | *fileName | zlibTest.cpp:58:29:58:36 | *fileName | provenance | | +| zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | zlibTest.cpp:58:29:58:36 | *fileName [Reverse] | provenance | | | zlibTest.cpp:58:22:58:27 | call to gzopen | zlibTest.cpp:58:22:58:27 | call to gzopen | provenance | | | zlibTest.cpp:58:22:58:27 | call to gzopen | zlibTest.cpp:62:25:62:31 | inFileZ | provenance | | | zlibTest.cpp:58:29:58:36 | *fileName | zlibTest.cpp:57:25:57:32 | *fileName | provenance | | | zlibTest.cpp:58:29:58:36 | *fileName | zlibTest.cpp:58:22:58:27 | call to gzopen | provenance | Config | +| zlibTest.cpp:58:29:58:36 | *fileName [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | provenance | | | zlibTest.cpp:71:26:71:30 | *input | zlibTest.cpp:71:26:71:30 | *input | provenance | | | zlibTest.cpp:71:26:71:30 | *input | zlibTest.cpp:77:45:77:59 | *input | provenance | | | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv | provenance | | @@ -78,34 +86,76 @@ edges | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:85:19:85:25 | *access to array | provenance | | | zlibTest.cpp:81:19:81:25 | *access to array | zlibTest.cpp:47:26:47:33 | *fileName | provenance | | | zlibTest.cpp:81:19:81:25 | *access to array | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | provenance | | +| zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:80:33:80:36 | **argv | provenance | | -| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:80:33:80:36 | **argv [Return] | provenance | | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:82:18:82:24 | *access to array | provenance | | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:83:19:83:25 | *access to array | provenance | | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:84:18:84:24 | *access to array | provenance | | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | zlibTest.cpp:85:19:85:25 | *access to array | provenance | | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | provenance | | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | provenance | | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | provenance | | | zlibTest.cpp:82:18:82:24 | *access to array | zlibTest.cpp:57:25:57:32 | *fileName | provenance | | | zlibTest.cpp:82:18:82:24 | *access to array | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | provenance | | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:80:33:80:36 | **argv | provenance | | -| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:80:33:80:36 | **argv [Return] | provenance | | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:83:19:83:25 | *access to array | provenance | | | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:84:18:84:24 | *access to array | provenance | | | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | zlibTest.cpp:85:19:85:25 | *access to array | provenance | | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | provenance | | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | provenance | | | zlibTest.cpp:83:19:83:25 | *access to array | zlibTest.cpp:16:26:16:30 | *input | provenance | | | zlibTest.cpp:83:19:83:25 | *access to array | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:80:33:80:36 | **argv | provenance | | -| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:80:33:80:36 | **argv [Return] | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:84:18:84:24 | *access to array | provenance | | | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | zlibTest.cpp:85:19:85:25 | *access to array | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | provenance | | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | provenance | | | zlibTest.cpp:84:18:84:24 | *access to array | zlibTest.cpp:37:25:37:32 | *fileName | provenance | | | zlibTest.cpp:84:18:84:24 | *access to array | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | provenance | | | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:80:33:80:36 | **argv | provenance | | -| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:80:33:80:36 | **argv [Return] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | provenance | | | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | zlibTest.cpp:85:19:85:25 | *access to array | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | provenance | | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | provenance | | | zlibTest.cpp:85:19:85:25 | *access to array | zlibTest.cpp:71:26:71:30 | *input | provenance | | | zlibTest.cpp:85:19:85:25 | *access to array | zlibTest.cpp:85:19:85:25 | InflateString output argument | provenance | | | zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:80:33:80:36 | **argv | provenance | | -| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:80:33:80:36 | **argv [Return] | provenance | | +| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | provenance | | +| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | provenance | | +| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | provenance | | +| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | provenance | | +| zlibTest.cpp:85:19:85:25 | InflateString output argument | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | provenance | | | zstdTest.cpp:26:39:26:42 | **argv | zstdTest.cpp:27:35:27:41 | *access to array | provenance | | | zstdTest.cpp:26:39:26:42 | *argv | zstdTest.cpp:27:35:27:41 | *access to array | provenance | | | zstdTest.cpp:27:23:27:33 | call to fopen_orDie | zstdTest.cpp:27:23:27:33 | call to fopen_orDie | provenance | | @@ -161,41 +211,65 @@ nodes | minizipTest.cpp:28:13:28:19 | *access to array | semmle.label | *access to array | | zlibTest.cpp:16:26:16:30 | *input | semmle.label | *input | | zlibTest.cpp:16:26:16:30 | *input | semmle.label | *input | +| zlibTest.cpp:16:26:16:30 | *input [Reverse] | semmle.label | *input [Reverse] | +| zlibTest.cpp:16:26:16:30 | *input [Reverse] | semmle.label | *input [Reverse] | | zlibTest.cpp:20:25:20:39 | *input | semmle.label | *input | +| zlibTest.cpp:20:25:20:39 | *input [Reverse] | semmle.label | *input [Reverse] | | zlibTest.cpp:24:17:24:26 | & ... | semmle.label | & ... | | zlibTest.cpp:25:13:25:22 | & ... | semmle.label | & ... | | zlibTest.cpp:37:25:37:32 | *fileName | semmle.label | *fileName | | zlibTest.cpp:37:25:37:32 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | +| zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:38:22:38:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:38:22:38:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:38:29:38:36 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:38:29:38:36 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:41:20:41:26 | inFileZ | semmle.label | inFileZ | | zlibTest.cpp:47:26:47:33 | *fileName | semmle.label | *fileName | | zlibTest.cpp:47:26:47:33 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | +| zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:48:22:48:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:48:22:48:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:48:29:48:36 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:48:29:48:36 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:51:38:51:44 | inFileZ | semmle.label | inFileZ | | zlibTest.cpp:57:25:57:32 | *fileName | semmle.label | *fileName | | zlibTest.cpp:57:25:57:32 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | +| zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:58:22:58:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:58:22:58:27 | call to gzopen | semmle.label | call to gzopen | | zlibTest.cpp:58:29:58:36 | *fileName | semmle.label | *fileName | +| zlibTest.cpp:58:29:58:36 | *fileName [Reverse] | semmle.label | *fileName [Reverse] | | zlibTest.cpp:62:25:62:31 | inFileZ | semmle.label | inFileZ | | zlibTest.cpp:71:26:71:30 | *input | semmle.label | *input | | zlibTest.cpp:71:26:71:30 | *input | semmle.label | *input | | zlibTest.cpp:77:45:77:59 | *input | semmle.label | *input | | zlibTest.cpp:80:33:80:36 | **argv | semmle.label | **argv | | zlibTest.cpp:80:33:80:36 | **argv | semmle.label | **argv | -| zlibTest.cpp:80:33:80:36 | **argv [Return] | semmle.label | **argv [Return] | +| zlibTest.cpp:80:33:80:36 | **argv [Reverse] | semmle.label | **argv [Reverse] | | zlibTest.cpp:81:19:81:25 | *access to array | semmle.label | *access to array | +| zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | +| zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | semmle.label | UnsafeGzfread output argument | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | semmle.label | UnsafeGzfread output argument [Reverse] | | zlibTest.cpp:82:18:82:24 | *access to array | semmle.label | *access to array | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | +| zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | semmle.label | UnsafeGzgets output argument | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | semmle.label | UnsafeGzgets output argument [Reverse] | | zlibTest.cpp:83:19:83:25 | *access to array | semmle.label | *access to array | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | +| zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | semmle.label | UnsafeInflate output argument | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | semmle.label | UnsafeInflate output argument [Reverse] | | zlibTest.cpp:84:18:84:24 | *access to array | semmle.label | *access to array | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | +| zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | semmle.label | *access to array [Reverse] | | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | semmle.label | UnsafeGzread output argument | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | semmle.label | UnsafeGzread output argument [Reverse] | | zlibTest.cpp:85:19:85:25 | *access to array | semmle.label | *access to array | | zlibTest.cpp:85:19:85:25 | InflateString output argument | semmle.label | InflateString output argument | | zstdTest.cpp:26:39:26:42 | **argv | semmle.label | **argv | @@ -216,12 +290,20 @@ subpaths | main.cpp:9:27:9:30 | **argv | libarchiveTests.cpp:30:45:30:48 | **argv | libarchiveTests.cpp:30:45:30:48 | **argv | main.cpp:9:27:9:30 | libarchive_test output argument | | main.cpp:10:24:10:27 | **argv | minizipTest.cpp:12:42:12:45 | **argv | minizipTest.cpp:12:42:12:45 | **argv | main.cpp:10:24:10:27 | minizip_test output argument | | main.cpp:11:21:11:24 | **argv | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv | main.cpp:11:21:11:24 | zlib_test output argument | -| main.cpp:11:21:11:24 | **argv | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv [Return] | main.cpp:11:21:11:24 | zlib_test output argument | -| main.cpp:11:21:11:24 | **argv | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv [Return] | main.cpp:11:21:11:24 | zlib_test output argument | +| main.cpp:11:21:11:24 | **argv | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | main.cpp:11:21:11:24 | zlib_test output argument | +| main.cpp:11:21:11:24 | **argv | zlibTest.cpp:80:33:80:36 | **argv | zlibTest.cpp:80:33:80:36 | **argv [Reverse] | main.cpp:11:21:11:24 | zlib_test output argument | | zlibTest.cpp:81:19:81:25 | *access to array | zlibTest.cpp:47:26:47:33 | *fileName | zlibTest.cpp:47:26:47:33 | *fileName | zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | +| zlibTest.cpp:81:19:81:25 | UnsafeGzfread output argument [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | zlibTest.cpp:47:26:47:33 | *fileName [Reverse] | zlibTest.cpp:81:19:81:25 | *access to array [Reverse] | | zlibTest.cpp:82:18:82:24 | *access to array | zlibTest.cpp:57:25:57:32 | *fileName | zlibTest.cpp:57:25:57:32 | *fileName | zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | +| zlibTest.cpp:82:18:82:24 | UnsafeGzgets output argument [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | zlibTest.cpp:57:25:57:32 | *fileName [Reverse] | zlibTest.cpp:82:18:82:24 | *access to array [Reverse] | | zlibTest.cpp:83:19:83:25 | *access to array | zlibTest.cpp:16:26:16:30 | *input | zlibTest.cpp:16:26:16:30 | *input | zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | +| zlibTest.cpp:83:19:83:25 | UnsafeInflate output argument [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | zlibTest.cpp:16:26:16:30 | *input [Reverse] | zlibTest.cpp:83:19:83:25 | *access to array [Reverse] | | zlibTest.cpp:84:18:84:24 | *access to array | zlibTest.cpp:37:25:37:32 | *fileName | zlibTest.cpp:37:25:37:32 | *fileName | zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | +| zlibTest.cpp:84:18:84:24 | UnsafeGzread output argument [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | zlibTest.cpp:37:25:37:32 | *fileName [Reverse] | zlibTest.cpp:84:18:84:24 | *access to array [Reverse] | | zlibTest.cpp:85:19:85:25 | *access to array | zlibTest.cpp:71:26:71:30 | *input | zlibTest.cpp:71:26:71:30 | *input | zlibTest.cpp:85:19:85:25 | InflateString output argument | #select | brotliTest.cpp:18:35:18:53 | *access to array | main.cpp:7:33:7:36 | **argv | brotliTest.cpp:18:35:18:53 | *access to array | The decompression output of $@ is not limited | brotliTest.cpp:18:5:18:27 | call to BrotliDecoderDecompress | BrotliDecoderDecompress | diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected index 203e48f152253..55d5c71473681 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected @@ -188,6 +188,7 @@ irFlow | flowOut.cpp:5:16:5:21 | call to source | flowOut.cpp:61:8:61:11 | access to array | | flowOut.cpp:8:16:8:23 | call to source | flowOut.cpp:73:8:73:9 | * ... | | flowOut.cpp:8:16:8:23 | call to source | flowOut.cpp:117:8:117:9 | * ... | +| flowOut.cpp:84:18:84:23 | call to source | flowOut.cpp:85:8:85:9 | * ... | | flowOut.cpp:90:8:90:13 | call to source | flowOut.cpp:102:8:102:9 | * ... | | flowOut.cpp:131:15:131:20 | call to source | flowOut.cpp:146:8:146:10 | * ... | | flowOut.cpp:131:15:131:20 | call to source | flowOut.cpp:161:8:161:10 | * ... | diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected index 8a235cb83afbb..8f0852de0cb26 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.expected @@ -1,6 +1,5 @@ | flowOut.cpp:19:9:19:9 | x | Unexpected result: ir | | flowOut.cpp:46:8:46:11 | access to array | Unexpected result: ir | | flowOut.cpp:73:8:73:9 | * ... | Unexpected result: ir | -| flowOut.cpp:85:13:85:32 | // $ ir MISSING: ast | Missing result: ir | | flowOut.cpp:117:8:117:9 | * ... | Unexpected result: ir | | flowOut.cpp:146:8:146:10 | * ... | Unexpected result: ir | diff --git a/cpp/ql/test/library-tests/dataflow/fields/flow.expected b/cpp/ql/test/library-tests/dataflow/fields/flow.expected index 5ba217dcbbf79..8b137891791fe 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/flow.expected @@ -1,2 +1 @@ -| A.cpp:65:14:65:14 | c | Unexpected result: ast | -| A.cpp:74:14:74:14 | c | Unexpected result: ast | + diff --git a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected index 7bf46d3b8891d..79de88900a304 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/ir-path-flow.expected @@ -1,11 +1,9 @@ edges | A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | provenance | | -| A.cpp:25:7:25:10 | *this [Reverse] [c] | A.cpp:23:5:23:5 | *this [Return] [c] | provenance | | -| A.cpp:25:7:25:10 | *this [post update] [c] | A.cpp:25:7:25:10 | *this [Reverse] [c] | provenance | | +| A.cpp:25:7:25:10 | *this [post update] [c] | A.cpp:23:5:23:5 | *this [Reverse] [c] | provenance | | | A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | *this [post update] [c] | provenance | | | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | provenance | | -| A.cpp:27:22:27:25 | *this [Reverse] [c] | A.cpp:27:10:27:12 | *this [Return] [c] | provenance | | -| A.cpp:27:22:27:25 | *this [post update] [c] | A.cpp:27:22:27:25 | *this [Reverse] [c] | provenance | | +| A.cpp:27:22:27:25 | *this [post update] [c] | A.cpp:27:10:27:12 | *this [Reverse] [c] | provenance | | | A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | *this [post update] [c] | provenance | | | A.cpp:28:8:28:10 | *this [c] | A.cpp:28:23:28:26 | *this [c] | provenance | | | A.cpp:28:23:28:26 | *this [c] | A.cpp:28:29:28:29 | c | provenance | | @@ -70,35 +68,31 @@ edges | A.cpp:112:7:112:13 | *... = ... [a] | A.cpp:118:18:118:39 | *cc [a] | provenance | | | A.cpp:118:18:118:39 | *cc [a] | A.cpp:120:12:120:13 | *c1 [a] | provenance | | | A.cpp:120:12:120:13 | *c1 [a] | A.cpp:120:12:120:16 | a | provenance | | -| A.cpp:124:14:124:14 | *b [Return] [c] | A.cpp:131:8:131:8 | f7 output argument [c] | provenance | | +| A.cpp:124:14:124:14 | *b [Reverse] [c] | A.cpp:131:8:131:8 | f7 output argument [c] | provenance | | | A.cpp:124:14:124:14 | *b [c] | A.cpp:131:8:131:8 | f7 output argument [c] | provenance | | -| A.cpp:126:5:126:5 | set output argument [c] | A.cpp:124:14:124:14 | *b [Return] [c] | provenance | | +| A.cpp:126:5:126:5 | set output argument [c] | A.cpp:124:14:124:14 | *b [Reverse] [c] | provenance | | | A.cpp:126:5:126:5 | set output argument [c] | A.cpp:124:14:124:14 | *b [c] | provenance | | | A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | provenance | | | A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | set output argument [c] | provenance | | | A.cpp:126:12:126:18 | new | A.cpp:126:12:126:18 | new | provenance | | | A.cpp:131:8:131:8 | f7 output argument [c] | A.cpp:132:10:132:10 | *b [c] | provenance | | | A.cpp:132:10:132:10 | *b [c] | A.cpp:132:10:132:13 | c | provenance | | -| A.cpp:140:5:140:5 | *this [Return] [*b, c] | A.cpp:151:12:151:24 | call to D [*b, c] | provenance | | -| A.cpp:140:5:140:5 | *this [Return] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | -| A.cpp:140:13:140:13 | *b [Return] [c] | A.cpp:151:18:151:18 | D output argument [c] | provenance | | +| A.cpp:140:5:140:5 | *this [Reverse] [*b, c] | A.cpp:151:12:151:24 | call to D [*b, c] | provenance | | +| A.cpp:140:5:140:5 | *this [Reverse] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:140:13:140:13 | *b [Reverse] [c] | A.cpp:151:18:151:18 | D output argument [c] | provenance | | | A.cpp:140:13:140:13 | *b [c] | A.cpp:151:18:151:18 | D output argument [c] | provenance | | | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | provenance | | -| A.cpp:142:7:142:7 | *b [Reverse] [c] | A.cpp:140:13:140:13 | *b [Return] [c] | provenance | | +| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:140:13:140:13 | *b [Reverse] [c] | provenance | | | A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:140:13:140:13 | *b [c] | provenance | | -| A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:142:7:142:7 | *b [Reverse] [c] | provenance | | | A.cpp:142:7:142:7 | *b [post update] [c] | A.cpp:143:7:143:31 | *... = ... [c] | provenance | | | A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | *b [post update] [c] | provenance | | | A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | provenance | | -| A.cpp:143:7:143:10 | *this [Reverse] [*b, c] | A.cpp:140:5:140:5 | *this [Return] [*b, c] | provenance | | -| A.cpp:143:7:143:10 | *this [Reverse] [*b, c] | A.cpp:143:7:143:10 | *this [post update] [Reverse] [*b, c] | provenance | | -| A.cpp:143:7:143:10 | *this [Reverse] [b] | A.cpp:140:5:140:5 | *this [Return] [b] | provenance | | -| A.cpp:143:7:143:10 | *this [Reverse] [b] | A.cpp:140:5:140:5 | *this [Return] [b] | provenance | | -| A.cpp:143:7:143:10 | *this [post update] [*b, c] | A.cpp:143:7:143:10 | *this [Reverse] [*b, c] | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [*b, c] | A.cpp:140:5:140:5 | *this [Reverse] [*b, c] | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [*b, c] | A.cpp:143:7:143:10 | *this [post update] [Reverse] [*b, c] | provenance | | | A.cpp:143:7:143:10 | *this [post update] [Reverse] [*b, c] | A.cpp:143:7:143:31 | *... = ... [Reverse] [c] | provenance | | -| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:143:7:143:10 | *this [Reverse] [b] | provenance | | -| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:143:7:143:10 | *this [Reverse] [b] | provenance | | -| A.cpp:143:7:143:31 | *... = ... [Reverse] [c] | A.cpp:142:7:142:7 | *b [Reverse] [c] | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:140:5:140:5 | *this [Reverse] [b] | provenance | | +| A.cpp:143:7:143:10 | *this [post update] [b] | A.cpp:140:5:140:5 | *this [Reverse] [b] | provenance | | +| A.cpp:143:7:143:31 | *... = ... [Reverse] [c] | A.cpp:140:13:140:13 | *b [Reverse] [c] | provenance | | | A.cpp:143:7:143:31 | *... = ... [c] | A.cpp:143:7:143:10 | *this [post update] [*b, c] | provenance | | | A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | provenance | | | A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | *this [post update] [b] | provenance | | @@ -154,15 +148,10 @@ edges | A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | provenance | | | A.cpp:181:32:181:35 | *next [*next, head] | A.cpp:184:7:184:23 | *... = ... [*next, head] | provenance | | | A.cpp:181:32:181:35 | *next [head] | A.cpp:184:7:184:23 | *... = ... [head] | provenance | | -| A.cpp:183:7:183:10 | *this [Reverse] [*next, *next, head] | A.cpp:181:5:181:10 | *this [Return] [*next, *next, head] | provenance | | -| A.cpp:183:7:183:10 | *this [Reverse] [*next, head] | A.cpp:181:5:181:10 | *this [Return] [*next, head] | provenance | | -| A.cpp:183:7:183:10 | *this [Reverse] [head] | A.cpp:181:5:181:10 | *this [Return] [head] | provenance | | -| A.cpp:183:7:183:10 | *this [post update] [head] | A.cpp:183:7:183:10 | *this [Reverse] [head] | provenance | | +| A.cpp:183:7:183:10 | *this [post update] [head] | A.cpp:181:5:181:10 | *this [Reverse] [head] | provenance | | | A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | *this [post update] [head] | provenance | | -| A.cpp:184:7:184:10 | *this [Reverse] [*next, *next, head] | A.cpp:183:7:183:10 | *this [Reverse] [*next, *next, head] | provenance | | -| A.cpp:184:7:184:10 | *this [Reverse] [*next, head] | A.cpp:183:7:183:10 | *this [Reverse] [*next, head] | provenance | | -| A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | A.cpp:184:7:184:10 | *this [Reverse] [*next, *next, head] | provenance | | -| A.cpp:184:7:184:10 | *this [post update] [*next, head] | A.cpp:184:7:184:10 | *this [Reverse] [*next, head] | provenance | | +| A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | A.cpp:181:5:181:10 | *this [Reverse] [*next, *next, head] | provenance | | +| A.cpp:184:7:184:10 | *this [post update] [*next, head] | A.cpp:181:5:181:10 | *this [Reverse] [*next, head] | provenance | | | A.cpp:184:7:184:23 | *... = ... [*next, head] | A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | provenance | | | A.cpp:184:7:184:23 | *... = ... [head] | A.cpp:184:7:184:10 | *this [post update] [*next, head] | provenance | | | B.cpp:6:15:6:24 | new | B.cpp:6:15:6:24 | new | provenance | | @@ -191,19 +180,14 @@ edges | B.cpp:19:14:19:17 | *box1 [elem2] | B.cpp:19:10:19:24 | elem2 | provenance | | | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | provenance | | | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | provenance | | -| B.cpp:35:7:35:10 | *this [Reverse] [elem1] | B.cpp:33:5:33:8 | *this [Return] [elem1] | provenance | | -| B.cpp:35:7:35:10 | *this [Reverse] [elem2] | B.cpp:33:5:33:8 | *this [Return] [elem2] | provenance | | -| B.cpp:35:7:35:10 | *this [post update] [elem1] | B.cpp:35:7:35:10 | *this [Reverse] [elem1] | provenance | | +| B.cpp:35:7:35:10 | *this [post update] [elem1] | B.cpp:33:5:33:8 | *this [Reverse] [elem1] | provenance | | | B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | *this [post update] [elem1] | provenance | | -| B.cpp:36:7:36:10 | *this [Reverse] [elem2] | B.cpp:35:7:35:10 | *this [Reverse] [elem2] | provenance | | -| B.cpp:36:7:36:10 | *this [post update] [elem2] | B.cpp:36:7:36:10 | *this [Reverse] [elem2] | provenance | | +| B.cpp:36:7:36:10 | *this [post update] [elem2] | B.cpp:33:5:33:8 | *this [Reverse] [elem2] | provenance | | | B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | *this [post update] [elem2] | provenance | | | B.cpp:44:16:44:17 | *b1 [elem1] | B.cpp:46:7:46:21 | *... = ... [elem1] | provenance | | | B.cpp:44:16:44:17 | *b1 [elem2] | B.cpp:46:7:46:21 | *... = ... [elem2] | provenance | | -| B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem1] | B.cpp:44:5:44:8 | *this [Return] [*box1, elem1] | provenance | | -| B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem2] | B.cpp:44:5:44:8 | *this [Return] [*box1, elem2] | provenance | | -| B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem1] | provenance | | -| B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem2] | provenance | | +| B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem1] | provenance | | +| B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem2] | provenance | | | B.cpp:46:7:46:21 | *... = ... [elem1] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | provenance | | | B.cpp:46:7:46:21 | *... = ... [elem2] | B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | provenance | | | C.cpp:18:12:18:18 | *new [s1] | C.cpp:19:5:19:5 | *c [s1] | provenance | | @@ -212,15 +196,14 @@ edges | C.cpp:18:12:18:18 | call to C [s3] | C.cpp:18:12:18:18 | *new [s3] | provenance | | | C.cpp:19:5:19:5 | *c [s1] | C.cpp:27:8:27:11 | *this [s1] | provenance | | | C.cpp:19:5:19:5 | *c [s3] | C.cpp:27:8:27:11 | *this [s3] | provenance | | -| C.cpp:22:3:22:3 | *this [Return] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | -| C.cpp:22:3:22:3 | *this [Return] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | -| C.cpp:22:3:22:3 | *this [Reverse] [s1] | C.cpp:22:3:22:3 | *this [Return] [s1] | provenance | | -| C.cpp:22:3:22:3 | *this [Reverse] [s3] | C.cpp:22:3:22:3 | *this [Return] [s3] | provenance | | +| C.cpp:22:3:22:3 | *this [Reverse] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | +| C.cpp:22:3:22:3 | *this [Reverse] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | +| C.cpp:22:3:22:3 | *this [Reverse] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | +| C.cpp:22:3:22:3 | *this [post update] [s1] | C.cpp:22:3:22:3 | *this [Reverse] [s1] | provenance | | | C.cpp:22:3:22:3 | *this [post update] [s1] | C.cpp:22:3:22:3 | *this [Reverse] [s1] | provenance | | | C.cpp:22:12:22:21 | new | C.cpp:22:3:22:3 | *this [post update] [s1] | provenance | | | C.cpp:22:12:22:21 | new | C.cpp:22:12:22:21 | new | provenance | | -| C.cpp:24:5:24:8 | *this [Reverse] [s3] | C.cpp:22:3:22:3 | *this [Reverse] [s3] | provenance | | -| C.cpp:24:5:24:8 | *this [post update] [s3] | C.cpp:24:5:24:8 | *this [Reverse] [s3] | provenance | | +| C.cpp:24:5:24:8 | *this [post update] [s3] | C.cpp:22:3:22:3 | *this [Reverse] [s3] | provenance | | | C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | *this [post update] [s3] | provenance | | | C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | provenance | | | C.cpp:27:8:27:11 | *this [s1] | C.cpp:29:10:29:11 | *this [s1] | provenance | | @@ -232,8 +215,7 @@ edges | D.cpp:10:30:10:33 | elem | D.cpp:10:11:10:17 | *getElem | provenance | | | D.cpp:10:30:10:33 | elem | D.cpp:10:30:10:33 | elem | provenance | | | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | provenance | | -| D.cpp:11:29:11:32 | *this [Reverse] [elem] | D.cpp:11:10:11:16 | *this [Return] [elem] | provenance | | -| D.cpp:11:29:11:32 | *this [post update] [elem] | D.cpp:11:29:11:32 | *this [Reverse] [elem] | provenance | | +| D.cpp:11:29:11:32 | *this [post update] [elem] | D.cpp:11:10:11:16 | *this [Reverse] [elem] | provenance | | | D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | *this [post update] [elem] | provenance | | | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | D.cpp:17:30:17:32 | *box [Reverse] [elem] | provenance | | | D.cpp:17:11:17:17 | *this [*box, elem] | D.cpp:17:30:17:32 | *this [*box, elem] | provenance | | @@ -242,7 +224,7 @@ edges | D.cpp:17:30:17:32 | *box [elem] | D.cpp:17:11:17:17 | **getBox1 [elem] | provenance | | | D.cpp:17:30:17:32 | *box [elem] | D.cpp:17:30:17:32 | *box [elem] | provenance | | | D.cpp:17:30:17:32 | *this [*box, elem] | D.cpp:17:30:17:32 | *box [elem] | provenance | | -| D.cpp:17:30:17:32 | *this [Reverse] [*box, elem] | D.cpp:17:11:17:17 | *this [Return] [*box, elem] | provenance | | +| D.cpp:17:30:17:32 | *this [Reverse] [*box, elem] | D.cpp:17:11:17:17 | *this [Reverse] [*box, elem] | provenance | | | D.cpp:21:30:21:31 | *b2 [*box, elem] | D.cpp:22:10:22:11 | *b2 [*box, elem] | provenance | | | D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:17:11:17:17 | *this [*box, elem] | provenance | | | D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:22:14:22:20 | *call to getBox1 [elem] | provenance | | @@ -300,18 +282,16 @@ edges | E.cpp:30:23:30:26 | *data [post update] [*buffer] | E.cpp:30:21:30:21 | *p [post update] [data, *buffer] | provenance | | | E.cpp:32:10:32:10 | *b [*buffer] | E.cpp:32:13:32:18 | *buffer | provenance | | | E.cpp:33:18:33:19 | *& ... [data, *buffer] | E.cpp:19:27:19:27 | *p [data, *buffer] | provenance | | -| aliasing.cpp:8:23:8:23 | *s [Return] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | provenance | | +| aliasing.cpp:8:23:8:23 | *s [Reverse] [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | provenance | | | aliasing.cpp:8:23:8:23 | *s [m1] | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | provenance | | -| aliasing.cpp:9:3:9:3 | *s [Reverse] [m1] | aliasing.cpp:8:23:8:23 | *s [Return] [m1] | provenance | | +| aliasing.cpp:9:3:9:3 | *s [post update] [m1] | aliasing.cpp:8:23:8:23 | *s [Reverse] [m1] | provenance | | | aliasing.cpp:9:3:9:3 | *s [post update] [m1] | aliasing.cpp:8:23:8:23 | *s [m1] | provenance | | -| aliasing.cpp:9:3:9:3 | *s [post update] [m1] | aliasing.cpp:9:3:9:3 | *s [Reverse] [m1] | provenance | | | aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | *s [post update] [m1] | provenance | | | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | provenance | | -| aliasing.cpp:12:25:12:25 | *s [Return] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | provenance | | +| aliasing.cpp:12:25:12:25 | *s [Reverse] [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | provenance | | | aliasing.cpp:12:25:12:25 | *s [m1] | aliasing.cpp:26:19:26:20 | referenceSetter output argument [m1] | provenance | | -| aliasing.cpp:13:3:13:3 | *s [Reverse] [m1] | aliasing.cpp:12:25:12:25 | *s [Return] [m1] | provenance | | +| aliasing.cpp:13:3:13:3 | *s [post update] [m1] | aliasing.cpp:12:25:12:25 | *s [Reverse] [m1] | provenance | | | aliasing.cpp:13:3:13:3 | *s [post update] [m1] | aliasing.cpp:12:25:12:25 | *s [m1] | provenance | | -| aliasing.cpp:13:3:13:3 | *s [post update] [m1] | aliasing.cpp:13:3:13:3 | *s [Reverse] [m1] | provenance | | | aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | *s [post update] [m1] | provenance | | | aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | provenance | | | aliasing.cpp:25:17:25:19 | pointerSetter output argument [m1] | aliasing.cpp:29:8:29:9 | *s1 [m1] | provenance | | @@ -428,20 +408,18 @@ edges | arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | arrays.cpp:50:20:50:22 | *ptr [data] | provenance | | | arrays.cpp:50:20:50:22 | *ptr [data] | arrays.cpp:50:8:50:25 | *access to array [data] | provenance | | | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | provenance | | -| by_reference.cpp:12:5:12:5 | *s [Reverse] [a] | by_reference.cpp:11:39:11:39 | *s [Return] [a] | provenance | | +| by_reference.cpp:12:5:12:5 | *s [post update] [a] | by_reference.cpp:11:39:11:39 | *s [Reverse] [a] | provenance | | | by_reference.cpp:12:5:12:5 | *s [post update] [a] | by_reference.cpp:11:39:11:39 | *s [a] | provenance | | -| by_reference.cpp:12:5:12:5 | *s [post update] [a] | by_reference.cpp:12:5:12:5 | *s [Reverse] [a] | provenance | | | by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | *s [post update] [a] | provenance | | | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | provenance | | -| by_reference.cpp:16:5:16:8 | *this [Reverse] [a] | by_reference.cpp:15:8:15:18 | *this [Return] [a] | provenance | | -| by_reference.cpp:16:5:16:8 | *this [post update] [a] | by_reference.cpp:16:5:16:8 | *this [Reverse] [a] | provenance | | +| by_reference.cpp:16:5:16:8 | *this [post update] [a] | by_reference.cpp:15:8:15:18 | *this [Reverse] [a] | provenance | | | by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | *this [post update] [a] | provenance | | | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | provenance | | -| by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | by_reference.cpp:19:8:19:20 | *this [Return] [a] | provenance | | +| by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | by_reference.cpp:19:8:19:20 | *this [Reverse] [a] | provenance | | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | provenance | | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | provenance | | | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | provenance | | -| by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | by_reference.cpp:23:8:23:26 | *this [Return] [a] | provenance | | +| by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | by_reference.cpp:23:8:23:26 | *this [Reverse] [a] | provenance | | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | provenance | | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | provenance | | | by_reference.cpp:31:46:31:46 | *s [a] | by_reference.cpp:32:12:32:12 | *s [a] | provenance | | @@ -482,30 +460,28 @@ edges | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | provenance | | | by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:31:46:31:46 | *s [a] | provenance | | | by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | provenance | | -| by_reference.cpp:83:31:83:35 | *inner [Return] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | provenance | | -| by_reference.cpp:83:31:83:35 | *inner [Return] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | provenance | | -| by_reference.cpp:83:31:83:35 | *inner [Return] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | provenance | | -| by_reference.cpp:83:31:83:35 | *inner [Return] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | provenance | | +| by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | provenance | | | by_reference.cpp:83:31:83:35 | *inner [a] | by_reference.cpp:102:21:102:39 | taint_inner_a_ptr output argument [a] | provenance | | | by_reference.cpp:83:31:83:35 | *inner [a] | by_reference.cpp:103:27:103:35 | taint_inner_a_ptr output argument [a] | provenance | | | by_reference.cpp:83:31:83:35 | *inner [a] | by_reference.cpp:106:21:106:41 | taint_inner_a_ptr output argument [a] | provenance | | | by_reference.cpp:83:31:83:35 | *inner [a] | by_reference.cpp:107:29:107:37 | taint_inner_a_ptr output argument [a] | provenance | | -| by_reference.cpp:84:3:84:7 | *inner [Reverse] [a] | by_reference.cpp:83:31:83:35 | *inner [Return] [a] | provenance | | +| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | provenance | | | by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:83:31:83:35 | *inner [a] | provenance | | -| by_reference.cpp:84:3:84:7 | *inner [post update] [a] | by_reference.cpp:84:3:84:7 | *inner [Reverse] [a] | provenance | | | by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | *inner [post update] [a] | provenance | | | by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | provenance | | -| by_reference.cpp:87:31:87:35 | *inner [Return] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | provenance | | -| by_reference.cpp:87:31:87:35 | *inner [Return] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | provenance | | -| by_reference.cpp:87:31:87:35 | *inner [Return] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | provenance | | -| by_reference.cpp:87:31:87:35 | *inner [Return] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | provenance | | +| by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | provenance | | | by_reference.cpp:87:31:87:35 | *inner [a] | by_reference.cpp:122:21:122:38 | taint_inner_a_ref output argument [a] | provenance | | | by_reference.cpp:87:31:87:35 | *inner [a] | by_reference.cpp:123:21:123:36 | taint_inner_a_ref output argument [a] | provenance | | | by_reference.cpp:87:31:87:35 | *inner [a] | by_reference.cpp:126:21:126:40 | taint_inner_a_ref output argument [a] | provenance | | | by_reference.cpp:87:31:87:35 | *inner [a] | by_reference.cpp:127:21:127:38 | taint_inner_a_ref output argument [a] | provenance | | -| by_reference.cpp:88:3:88:7 | *inner [Reverse] [a] | by_reference.cpp:87:31:87:35 | *inner [Return] [a] | provenance | | +| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | provenance | | | by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:87:31:87:35 | *inner [a] | provenance | | -| by_reference.cpp:88:3:88:7 | *inner [post update] [a] | by_reference.cpp:88:3:88:7 | *inner [Reverse] [a] | provenance | | | by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | *inner [post update] [a] | provenance | | | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | provenance | | | by_reference.cpp:91:25:91:26 | *pa | by_reference.cpp:104:15:104:22 | taint_a_ptr output argument | provenance | | @@ -661,12 +637,10 @@ edges | complex.cpp:10:20:10:21 | b_ | complex.cpp:10:7:10:7 | *b | provenance | | | complex.cpp:10:20:10:21 | b_ | complex.cpp:10:20:10:21 | b_ | provenance | | | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | provenance | | -| complex.cpp:11:22:11:23 | *this [Reverse] [a_] | complex.cpp:11:8:11:11 | *this [Return] [a_] | provenance | | -| complex.cpp:11:22:11:23 | *this [post update] [a_] | complex.cpp:11:22:11:23 | *this [Reverse] [a_] | provenance | | +| complex.cpp:11:22:11:23 | *this [post update] [a_] | complex.cpp:11:8:11:11 | *this [Reverse] [a_] | provenance | | | complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | *this [post update] [a_] | provenance | | | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | provenance | | -| complex.cpp:12:22:12:23 | *this [Reverse] [b_] | complex.cpp:12:8:12:11 | *this [Return] [b_] | provenance | | -| complex.cpp:12:22:12:23 | *this [post update] [b_] | complex.cpp:12:22:12:23 | *this [Reverse] [b_] | provenance | | +| complex.cpp:12:22:12:23 | *this [post update] [b_] | complex.cpp:12:8:12:11 | *this [Reverse] [b_] | provenance | | | complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | *this [post update] [b_] | provenance | | | complex.cpp:40:17:40:17 | *b [inner, f, a_] | complex.cpp:42:8:42:8 | *b [inner, f, a_] | provenance | | | complex.cpp:40:17:40:17 | *b [inner, f, b_] | complex.cpp:43:8:43:8 | *b [inner, f, b_] | provenance | | @@ -735,10 +709,6 @@ edges | constructors.cpp:19:22:19:23 | *this [b_] | constructors.cpp:19:22:19:23 | b_ | provenance | | | constructors.cpp:19:22:19:23 | b_ | constructors.cpp:19:9:19:9 | *b | provenance | | | constructors.cpp:19:22:19:23 | b_ | constructors.cpp:19:22:19:23 | b_ | provenance | | -| constructors.cpp:23:5:23:7 | *this [Reverse] [a_] | constructors.cpp:23:5:23:7 | *this [Return] [a_] | provenance | | -| constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | constructors.cpp:23:5:23:7 | *this [Return] [b_] | provenance | | -| constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | constructors.cpp:23:5:23:7 | *this [Return] [b_] | provenance | | -| constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | provenance | | | constructors.cpp:23:5:23:7 | *this [post update] [a_] | constructors.cpp:23:5:23:7 | *this [Reverse] [a_] | provenance | | | constructors.cpp:23:5:23:7 | *this [post update] [b_] | constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | provenance | | | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | provenance | | @@ -768,23 +738,22 @@ edges | constructors.cpp:46:9:46:9 | *h [a_] | constructors.cpp:26:15:26:15 | *f [a_] | provenance | | | constructors.cpp:46:9:46:9 | *h [b_] | constructors.cpp:26:15:26:15 | *f [b_] | provenance | | | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | provenance | | -| qualifiers.cpp:9:30:9:33 | *this [Reverse] [a] | qualifiers.cpp:9:10:9:13 | *this [Return] [a] | provenance | | -| qualifiers.cpp:9:30:9:33 | *this [post update] [a] | qualifiers.cpp:9:30:9:33 | *this [Reverse] [a] | provenance | | +| qualifiers.cpp:9:30:9:33 | *this [post update] [a] | qualifiers.cpp:9:10:9:13 | *this [Reverse] [a] | provenance | | | qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | *this [post update] [a] | provenance | | +| qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | provenance | | -| qualifiers.cpp:12:49:12:53 | *inner [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Return] [a] | provenance | | +| qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | qualifiers.cpp:12:27:12:31 | *inner [a] | provenance | | -| qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | qualifiers.cpp:12:49:12:53 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | provenance | | +| qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | provenance | | -| qualifiers.cpp:13:51:13:55 | *inner [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Return] [a] | provenance | | +| qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | qualifiers.cpp:13:29:13:33 | *inner [a] | provenance | | -| qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | qualifiers.cpp:13:51:13:55 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | provenance | | | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | provenance | | | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | *this [Reverse] [*inner, a] | provenance | | -| qualifiers.cpp:18:32:18:36 | *this [Reverse] [*inner, a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | provenance | | +| qualifiers.cpp:18:32:18:36 | *this [Reverse] [*inner, a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | provenance | | | qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | qualifiers.cpp:23:10:23:14 | *outer [*inner, a] | provenance | | | qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | *call to getInner [post update] [a] | provenance | | | qualifiers.cpp:22:11:22:18 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | provenance | | @@ -804,14 +773,26 @@ edges | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | provenance | | | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | provenance | | | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | provenance | | +| qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | provenance | | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | provenance | | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | provenance | | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | provenance | | | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | provenance | | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | provenance | | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | provenance | | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | provenance | | | qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | qualifiers.cpp:33:16:33:20 | *inner [a] | provenance | | | qualifiers.cpp:33:16:33:20 | *inner [a] | qualifiers.cpp:33:23:33:23 | a | provenance | | | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | provenance | | +| qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | provenance | | +| qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | provenance | | | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | provenance | | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | provenance | | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | provenance | | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | provenance | | | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | provenance | | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | provenance | | | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | qualifiers.cpp:38:10:38:14 | *outer [*inner, a] | provenance | | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | provenance | | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | provenance | | @@ -852,12 +833,10 @@ edges | simple.cpp:19:22:19:23 | b_ | simple.cpp:19:9:19:9 | *b | provenance | | | simple.cpp:19:22:19:23 | b_ | simple.cpp:19:22:19:23 | b_ | provenance | | | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | provenance | | -| simple.cpp:20:24:20:25 | *this [Reverse] [a_] | simple.cpp:20:10:20:13 | *this [Return] [a_] | provenance | | -| simple.cpp:20:24:20:25 | *this [post update] [a_] | simple.cpp:20:24:20:25 | *this [Reverse] [a_] | provenance | | +| simple.cpp:20:24:20:25 | *this [post update] [a_] | simple.cpp:20:10:20:13 | *this [Reverse] [a_] | provenance | | | simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | *this [post update] [a_] | provenance | | | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | provenance | | -| simple.cpp:21:24:21:25 | *this [Reverse] [b_] | simple.cpp:21:10:21:13 | *this [Return] [b_] | provenance | | -| simple.cpp:21:24:21:25 | *this [post update] [b_] | simple.cpp:21:24:21:25 | *this [Reverse] [b_] | provenance | | +| simple.cpp:21:24:21:25 | *this [post update] [b_] | simple.cpp:21:10:21:13 | *this [Reverse] [b_] | provenance | | | simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | *this [post update] [b_] | provenance | | | simple.cpp:26:15:26:15 | *f [a_] | simple.cpp:28:10:28:10 | *f [a_] | provenance | | | simple.cpp:26:15:26:15 | *f [b_] | simple.cpp:29:10:29:10 | *f [b_] | provenance | | @@ -948,14 +927,12 @@ edges | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | struct_init.c:46:16:46:24 | *pointerAB [a] | provenance | | | struct_init.c:46:16:46:24 | *pointerAB [a] | struct_init.c:14:24:14:25 | *ab [a] | provenance | | nodes -| A.cpp:23:5:23:5 | *this [Return] [c] | semmle.label | *this [Return] [c] | +| A.cpp:23:5:23:5 | *this [Reverse] [c] | semmle.label | *this [Reverse] [c] | | A.cpp:23:10:23:10 | c | semmle.label | c | -| A.cpp:25:7:25:10 | *this [Reverse] [c] | semmle.label | *this [Reverse] [c] | | A.cpp:25:7:25:10 | *this [post update] [c] | semmle.label | *this [post update] [c] | | A.cpp:25:7:25:17 | ... = ... | semmle.label | ... = ... | -| A.cpp:27:10:27:12 | *this [Return] [c] | semmle.label | *this [Return] [c] | +| A.cpp:27:10:27:12 | *this [Reverse] [c] | semmle.label | *this [Reverse] [c] | | A.cpp:27:17:27:17 | c | semmle.label | c | -| A.cpp:27:22:27:25 | *this [Reverse] [c] | semmle.label | *this [Reverse] [c] | | A.cpp:27:22:27:25 | *this [post update] [c] | semmle.label | *this [post update] [c] | | A.cpp:27:22:27:32 | ... = ... | semmle.label | ... = ... | | A.cpp:28:8:28:10 | *get | semmle.label | *get | @@ -1022,7 +999,7 @@ nodes | A.cpp:118:18:118:39 | *cc [a] | semmle.label | *cc [a] | | A.cpp:120:12:120:13 | *c1 [a] | semmle.label | *c1 [a] | | A.cpp:120:12:120:16 | a | semmle.label | a | -| A.cpp:124:14:124:14 | *b [Return] [c] | semmle.label | *b [Return] [c] | +| A.cpp:124:14:124:14 | *b [Reverse] [c] | semmle.label | *b [Reverse] [c] | | A.cpp:124:14:124:14 | *b [c] | semmle.label | *b [c] | | A.cpp:126:5:126:5 | set output argument [c] | semmle.label | set output argument [c] | | A.cpp:126:12:126:18 | new | semmle.label | new | @@ -1030,19 +1007,15 @@ nodes | A.cpp:131:8:131:8 | f7 output argument [c] | semmle.label | f7 output argument [c] | | A.cpp:132:10:132:10 | *b [c] | semmle.label | *b [c] | | A.cpp:132:10:132:13 | c | semmle.label | c | -| A.cpp:140:5:140:5 | *this [Return] [*b, c] | semmle.label | *this [Return] [*b, c] | -| A.cpp:140:5:140:5 | *this [Return] [b] | semmle.label | *this [Return] [b] | -| A.cpp:140:5:140:5 | *this [Return] [b] | semmle.label | *this [Return] [b] | -| A.cpp:140:13:140:13 | *b [Return] [c] | semmle.label | *b [Return] [c] | +| A.cpp:140:5:140:5 | *this [Reverse] [*b, c] | semmle.label | *this [Reverse] [*b, c] | +| A.cpp:140:5:140:5 | *this [Reverse] [b] | semmle.label | *this [Reverse] [b] | +| A.cpp:140:5:140:5 | *this [Reverse] [b] | semmle.label | *this [Reverse] [b] | +| A.cpp:140:13:140:13 | *b [Reverse] [c] | semmle.label | *b [Reverse] [c] | | A.cpp:140:13:140:13 | *b [c] | semmle.label | *b [c] | | A.cpp:140:13:140:13 | b | semmle.label | b | -| A.cpp:142:7:142:7 | *b [Reverse] [c] | semmle.label | *b [Reverse] [c] | | A.cpp:142:7:142:7 | *b [post update] [c] | semmle.label | *b [post update] [c] | | A.cpp:142:7:142:20 | ... = ... | semmle.label | ... = ... | | A.cpp:142:14:142:20 | new | semmle.label | new | -| A.cpp:143:7:143:10 | *this [Reverse] [*b, c] | semmle.label | *this [Reverse] [*b, c] | -| A.cpp:143:7:143:10 | *this [Reverse] [b] | semmle.label | *this [Reverse] [b] | -| A.cpp:143:7:143:10 | *this [Reverse] [b] | semmle.label | *this [Reverse] [b] | | A.cpp:143:7:143:10 | *this [post update] [*b, c] | semmle.label | *this [post update] [*b, c] | | A.cpp:143:7:143:10 | *this [post update] [Reverse] [*b, c] | semmle.label | *this [post update] [Reverse] [*b, c] | | A.cpp:143:7:143:10 | *this [post update] [b] | semmle.label | *this [post update] [b] | @@ -1098,19 +1071,14 @@ nodes | A.cpp:169:12:169:18 | head | semmle.label | head | | A.cpp:173:26:173:26 | *o [c] | semmle.label | *o [c] | | A.cpp:173:26:173:26 | *o [c] | semmle.label | *o [c] | -| A.cpp:181:5:181:10 | *this [Return] [*next, *next, head] | semmle.label | *this [Return] [*next, *next, head] | -| A.cpp:181:5:181:10 | *this [Return] [*next, head] | semmle.label | *this [Return] [*next, head] | -| A.cpp:181:5:181:10 | *this [Return] [head] | semmle.label | *this [Return] [head] | +| A.cpp:181:5:181:10 | *this [Reverse] [*next, *next, head] | semmle.label | *this [Reverse] [*next, *next, head] | +| A.cpp:181:5:181:10 | *this [Reverse] [*next, head] | semmle.label | *this [Reverse] [*next, head] | +| A.cpp:181:5:181:10 | *this [Reverse] [head] | semmle.label | *this [Reverse] [head] | | A.cpp:181:15:181:21 | newHead | semmle.label | newHead | | A.cpp:181:32:181:35 | *next [*next, head] | semmle.label | *next [*next, head] | | A.cpp:181:32:181:35 | *next [head] | semmle.label | *next [head] | -| A.cpp:183:7:183:10 | *this [Reverse] [*next, *next, head] | semmle.label | *this [Reverse] [*next, *next, head] | -| A.cpp:183:7:183:10 | *this [Reverse] [*next, head] | semmle.label | *this [Reverse] [*next, head] | -| A.cpp:183:7:183:10 | *this [Reverse] [head] | semmle.label | *this [Reverse] [head] | | A.cpp:183:7:183:10 | *this [post update] [head] | semmle.label | *this [post update] [head] | | A.cpp:183:7:183:20 | ... = ... | semmle.label | ... = ... | -| A.cpp:184:7:184:10 | *this [Reverse] [*next, *next, head] | semmle.label | *this [Reverse] [*next, *next, head] | -| A.cpp:184:7:184:10 | *this [Reverse] [*next, head] | semmle.label | *this [Reverse] [*next, head] | | A.cpp:184:7:184:10 | *this [post update] [*next, *next, head] | semmle.label | *this [post update] [*next, *next, head] | | A.cpp:184:7:184:10 | *this [post update] [*next, head] | semmle.label | *this [post update] [*next, head] | | A.cpp:184:7:184:23 | *... = ... [*next, head] | semmle.label | *... = ... [*next, head] | @@ -1137,23 +1105,18 @@ nodes | B.cpp:19:10:19:11 | *b2 [*box1, elem2] | semmle.label | *b2 [*box1, elem2] | | B.cpp:19:10:19:24 | elem2 | semmle.label | elem2 | | B.cpp:19:14:19:17 | *box1 [elem2] | semmle.label | *box1 [elem2] | -| B.cpp:33:5:33:8 | *this [Return] [elem1] | semmle.label | *this [Return] [elem1] | -| B.cpp:33:5:33:8 | *this [Return] [elem2] | semmle.label | *this [Return] [elem2] | +| B.cpp:33:5:33:8 | *this [Reverse] [elem1] | semmle.label | *this [Reverse] [elem1] | +| B.cpp:33:5:33:8 | *this [Reverse] [elem2] | semmle.label | *this [Reverse] [elem2] | | B.cpp:33:16:33:17 | e1 | semmle.label | e1 | | B.cpp:33:26:33:27 | e2 | semmle.label | e2 | -| B.cpp:35:7:35:10 | *this [Reverse] [elem1] | semmle.label | *this [Reverse] [elem1] | -| B.cpp:35:7:35:10 | *this [Reverse] [elem2] | semmle.label | *this [Reverse] [elem2] | | B.cpp:35:7:35:10 | *this [post update] [elem1] | semmle.label | *this [post update] [elem1] | | B.cpp:35:7:35:22 | ... = ... | semmle.label | ... = ... | -| B.cpp:36:7:36:10 | *this [Reverse] [elem2] | semmle.label | *this [Reverse] [elem2] | | B.cpp:36:7:36:10 | *this [post update] [elem2] | semmle.label | *this [post update] [elem2] | | B.cpp:36:7:36:22 | ... = ... | semmle.label | ... = ... | -| B.cpp:44:5:44:8 | *this [Return] [*box1, elem1] | semmle.label | *this [Return] [*box1, elem1] | -| B.cpp:44:5:44:8 | *this [Return] [*box1, elem2] | semmle.label | *this [Return] [*box1, elem2] | +| B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem1] | semmle.label | *this [Reverse] [*box1, elem1] | +| B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem2] | semmle.label | *this [Reverse] [*box1, elem2] | | B.cpp:44:16:44:17 | *b1 [elem1] | semmle.label | *b1 [elem1] | | B.cpp:44:16:44:17 | *b1 [elem2] | semmle.label | *b1 [elem2] | -| B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem1] | semmle.label | *this [Reverse] [*box1, elem1] | -| B.cpp:46:7:46:10 | *this [Reverse] [*box1, elem2] | semmle.label | *this [Reverse] [*box1, elem2] | | B.cpp:46:7:46:10 | *this [post update] [*box1, elem1] | semmle.label | *this [post update] [*box1, elem1] | | B.cpp:46:7:46:10 | *this [post update] [*box1, elem2] | semmle.label | *this [post update] [*box1, elem2] | | B.cpp:46:7:46:21 | *... = ... [elem1] | semmle.label | *... = ... [elem1] | @@ -1164,14 +1127,12 @@ nodes | C.cpp:18:12:18:18 | call to C [s3] | semmle.label | call to C [s3] | | C.cpp:19:5:19:5 | *c [s1] | semmle.label | *c [s1] | | C.cpp:19:5:19:5 | *c [s3] | semmle.label | *c [s3] | -| C.cpp:22:3:22:3 | *this [Return] [s1] | semmle.label | *this [Return] [s1] | -| C.cpp:22:3:22:3 | *this [Return] [s3] | semmle.label | *this [Return] [s3] | +| C.cpp:22:3:22:3 | *this [Reverse] [s1] | semmle.label | *this [Reverse] [s1] | | C.cpp:22:3:22:3 | *this [Reverse] [s1] | semmle.label | *this [Reverse] [s1] | | C.cpp:22:3:22:3 | *this [Reverse] [s3] | semmle.label | *this [Reverse] [s3] | | C.cpp:22:3:22:3 | *this [post update] [s1] | semmle.label | *this [post update] [s1] | | C.cpp:22:12:22:21 | new | semmle.label | new | | C.cpp:22:12:22:21 | new | semmle.label | new | -| C.cpp:24:5:24:8 | *this [Reverse] [s3] | semmle.label | *this [Reverse] [s3] | | C.cpp:24:5:24:8 | *this [post update] [s3] | semmle.label | *this [post update] [s3] | | C.cpp:24:5:24:25 | ... = ... | semmle.label | ... = ... | | C.cpp:24:16:24:25 | new | semmle.label | new | @@ -1186,15 +1147,14 @@ nodes | D.cpp:10:30:10:33 | *this [elem] | semmle.label | *this [elem] | | D.cpp:10:30:10:33 | elem | semmle.label | elem | | D.cpp:10:30:10:33 | elem | semmle.label | elem | -| D.cpp:11:10:11:16 | *this [Return] [elem] | semmle.label | *this [Return] [elem] | +| D.cpp:11:10:11:16 | *this [Reverse] [elem] | semmle.label | *this [Reverse] [elem] | | D.cpp:11:24:11:24 | e | semmle.label | e | -| D.cpp:11:29:11:32 | *this [Reverse] [elem] | semmle.label | *this [Reverse] [elem] | | D.cpp:11:29:11:32 | *this [post update] [elem] | semmle.label | *this [post update] [elem] | | D.cpp:11:29:11:36 | ... = ... | semmle.label | ... = ... | | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | semmle.label | **getBox1 [Reverse] [elem] | | D.cpp:17:11:17:17 | **getBox1 [elem] | semmle.label | **getBox1 [elem] | | D.cpp:17:11:17:17 | *this [*box, elem] | semmle.label | *this [*box, elem] | -| D.cpp:17:11:17:17 | *this [Return] [*box, elem] | semmle.label | *this [Return] [*box, elem] | +| D.cpp:17:11:17:17 | *this [Reverse] [*box, elem] | semmle.label | *this [Reverse] [*box, elem] | | D.cpp:17:30:17:32 | *box [Reverse] [elem] | semmle.label | *box [Reverse] [elem] | | D.cpp:17:30:17:32 | *box [Reverse] [elem] | semmle.label | *box [Reverse] [elem] | | D.cpp:17:30:17:32 | *box [elem] | semmle.label | *box [elem] | @@ -1257,15 +1217,13 @@ nodes | E.cpp:32:10:32:10 | *b [*buffer] | semmle.label | *b [*buffer] | | E.cpp:32:13:32:18 | *buffer | semmle.label | *buffer | | E.cpp:33:18:33:19 | *& ... [data, *buffer] | semmle.label | *& ... [data, *buffer] | -| aliasing.cpp:8:23:8:23 | *s [Return] [m1] | semmle.label | *s [Return] [m1] | +| aliasing.cpp:8:23:8:23 | *s [Reverse] [m1] | semmle.label | *s [Reverse] [m1] | | aliasing.cpp:8:23:8:23 | *s [m1] | semmle.label | *s [m1] | -| aliasing.cpp:9:3:9:3 | *s [Reverse] [m1] | semmle.label | *s [Reverse] [m1] | | aliasing.cpp:9:3:9:3 | *s [post update] [m1] | semmle.label | *s [post update] [m1] | | aliasing.cpp:9:3:9:22 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:9:11:9:20 | call to user_input | semmle.label | call to user_input | -| aliasing.cpp:12:25:12:25 | *s [Return] [m1] | semmle.label | *s [Return] [m1] | +| aliasing.cpp:12:25:12:25 | *s [Reverse] [m1] | semmle.label | *s [Reverse] [m1] | | aliasing.cpp:12:25:12:25 | *s [m1] | semmle.label | *s [m1] | -| aliasing.cpp:13:3:13:3 | *s [Reverse] [m1] | semmle.label | *s [Reverse] [m1] | | aliasing.cpp:13:3:13:3 | *s [post update] [m1] | semmle.label | *s [post update] [m1] | | aliasing.cpp:13:3:13:21 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:13:10:13:19 | call to user_input | semmle.label | call to user_input | @@ -1390,22 +1348,20 @@ nodes | arrays.cpp:50:10:50:17 | *indirect [*ptr, data] | semmle.label | *indirect [*ptr, data] | | arrays.cpp:50:20:50:22 | *ptr [data] | semmle.label | *ptr [data] | | arrays.cpp:50:27:50:30 | data | semmle.label | data | -| by_reference.cpp:11:39:11:39 | *s [Return] [a] | semmle.label | *s [Return] [a] | +| by_reference.cpp:11:39:11:39 | *s [Reverse] [a] | semmle.label | *s [Reverse] [a] | | by_reference.cpp:11:39:11:39 | *s [a] | semmle.label | *s [a] | | by_reference.cpp:11:48:11:52 | value | semmle.label | value | -| by_reference.cpp:12:5:12:5 | *s [Reverse] [a] | semmle.label | *s [Reverse] [a] | | by_reference.cpp:12:5:12:5 | *s [post update] [a] | semmle.label | *s [post update] [a] | | by_reference.cpp:12:5:12:16 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:15:8:15:18 | *this [Return] [a] | semmle.label | *this [Return] [a] | +| by_reference.cpp:15:8:15:18 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | by_reference.cpp:15:26:15:30 | value | semmle.label | value | -| by_reference.cpp:16:5:16:8 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | by_reference.cpp:16:5:16:8 | *this [post update] [a] | semmle.label | *this [post update] [a] | | by_reference.cpp:16:5:16:19 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:19:8:19:20 | *this [Return] [a] | semmle.label | *this [Return] [a] | +| by_reference.cpp:19:8:19:20 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | by_reference.cpp:19:28:19:32 | value | semmle.label | value | | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | semmle.label | setDirectly output argument [a] | | by_reference.cpp:20:23:20:27 | value | semmle.label | value | -| by_reference.cpp:23:8:23:26 | *this [Return] [a] | semmle.label | *this [Return] [a] | +| by_reference.cpp:23:8:23:26 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | by_reference.cpp:23:34:23:38 | value | semmle.label | value | | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | semmle.label | nonMemberSetA output argument [a] | | by_reference.cpp:24:25:24:29 | value | semmle.label | value | @@ -1445,15 +1401,13 @@ nodes | by_reference.cpp:68:21:68:30 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | semmle.label | call to nonMemberGetA | | by_reference.cpp:69:22:69:23 | *& ... [a] | semmle.label | *& ... [a] | -| by_reference.cpp:83:31:83:35 | *inner [Return] [a] | semmle.label | *inner [Return] [a] | +| by_reference.cpp:83:31:83:35 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | by_reference.cpp:83:31:83:35 | *inner [a] | semmle.label | *inner [a] | -| by_reference.cpp:84:3:84:7 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | by_reference.cpp:84:3:84:7 | *inner [post update] [a] | semmle.label | *inner [post update] [a] | | by_reference.cpp:84:3:84:25 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:84:14:84:23 | call to user_input | semmle.label | call to user_input | -| by_reference.cpp:87:31:87:35 | *inner [Return] [a] | semmle.label | *inner [Return] [a] | +| by_reference.cpp:87:31:87:35 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | by_reference.cpp:87:31:87:35 | *inner [a] | semmle.label | *inner [a] | -| by_reference.cpp:88:3:88:7 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | by_reference.cpp:88:3:88:7 | *inner [post update] [a] | semmle.label | *inner [post update] [a] | | by_reference.cpp:88:3:88:24 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:88:13:88:22 | call to user_input | semmle.label | call to user_input | @@ -1618,14 +1572,12 @@ nodes | complex.cpp:10:20:10:21 | *this [b_] | semmle.label | *this [b_] | | complex.cpp:10:20:10:21 | b_ | semmle.label | b_ | | complex.cpp:10:20:10:21 | b_ | semmle.label | b_ | -| complex.cpp:11:8:11:11 | *this [Return] [a_] | semmle.label | *this [Return] [a_] | +| complex.cpp:11:8:11:11 | *this [Reverse] [a_] | semmle.label | *this [Reverse] [a_] | | complex.cpp:11:17:11:17 | a | semmle.label | a | -| complex.cpp:11:22:11:23 | *this [Reverse] [a_] | semmle.label | *this [Reverse] [a_] | | complex.cpp:11:22:11:23 | *this [post update] [a_] | semmle.label | *this [post update] [a_] | | complex.cpp:11:22:11:27 | ... = ... | semmle.label | ... = ... | -| complex.cpp:12:8:12:11 | *this [Return] [b_] | semmle.label | *this [Return] [b_] | +| complex.cpp:12:8:12:11 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | | complex.cpp:12:17:12:17 | b | semmle.label | b | -| complex.cpp:12:22:12:23 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | | complex.cpp:12:22:12:23 | *this [post update] [b_] | semmle.label | *this [post update] [b_] | | complex.cpp:12:22:12:27 | ... = ... | semmle.label | ... = ... | | complex.cpp:40:17:40:17 | *b [inner, f, a_] | semmle.label | *b [inner, f, a_] | @@ -1699,11 +1651,8 @@ nodes | constructors.cpp:19:22:19:23 | *this [b_] | semmle.label | *this [b_] | | constructors.cpp:19:22:19:23 | b_ | semmle.label | b_ | | constructors.cpp:19:22:19:23 | b_ | semmle.label | b_ | -| constructors.cpp:23:5:23:7 | *this [Return] [a_] | semmle.label | *this [Return] [a_] | -| constructors.cpp:23:5:23:7 | *this [Return] [b_] | semmle.label | *this [Return] [b_] | | constructors.cpp:23:5:23:7 | *this [Reverse] [a_] | semmle.label | *this [Reverse] [a_] | | constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | -| constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | | constructors.cpp:23:5:23:7 | *this [post update] [a_] | semmle.label | *this [post update] [a_] | | constructors.cpp:23:5:23:7 | *this [post update] [b_] | semmle.label | *this [post update] [b_] | | constructors.cpp:23:13:23:13 | a | semmle.label | a | @@ -1728,25 +1677,26 @@ nodes | constructors.cpp:43:9:43:9 | *g [b_] | semmle.label | *g [b_] | | constructors.cpp:46:9:46:9 | *h [a_] | semmle.label | *h [a_] | | constructors.cpp:46:9:46:9 | *h [b_] | semmle.label | *h [b_] | -| qualifiers.cpp:9:10:9:13 | *this [Return] [a] | semmle.label | *this [Return] [a] | +| qualifiers.cpp:9:10:9:13 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | qualifiers.cpp:9:21:9:25 | value | semmle.label | value | -| qualifiers.cpp:9:30:9:33 | *this [Reverse] [a] | semmle.label | *this [Reverse] [a] | | qualifiers.cpp:9:30:9:33 | *this [post update] [a] | semmle.label | *this [post update] [a] | | qualifiers.cpp:9:30:9:44 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:12:27:12:31 | *inner [Return] [a] | semmle.label | *inner [Return] [a] | +| qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | +| qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | +| qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:12:27:12:31 | *inner [a] | semmle.label | *inner [a] | | qualifiers.cpp:12:40:12:44 | value | semmle.label | value | -| qualifiers.cpp:12:49:12:53 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:12:49:12:53 | *inner [post update] [a] | semmle.label | *inner [post update] [a] | | qualifiers.cpp:12:49:12:64 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:13:29:13:33 | *inner [Return] [a] | semmle.label | *inner [Return] [a] | +| qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | +| qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | +| qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:13:29:13:33 | *inner [a] | semmle.label | *inner [a] | | qualifiers.cpp:13:42:13:46 | value | semmle.label | value | -| qualifiers.cpp:13:51:13:55 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:13:51:13:55 | *inner [post update] [a] | semmle.label | *inner [post update] [a] | | qualifiers.cpp:13:51:13:65 | ... = ... | semmle.label | ... = ... | | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | semmle.label | **getInner [Reverse] [a] | -| qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | semmle.label | *this [Return] [*inner, a] | +| qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | semmle.label | *this [Reverse] [*inner, a] | | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:18:32:18:36 | *inner [Reverse] [a] | semmle.label | *inner [Reverse] [a] | | qualifiers.cpp:18:32:18:36 | *this [Reverse] [*inner, a] | semmle.label | *this [Reverse] [*inner, a] | @@ -1767,12 +1717,16 @@ nodes | qualifiers.cpp:28:23:28:23 | a | semmle.label | a | | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | semmle.label | getInner output argument [*inner, a] | | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | semmle.label | *call to getInner [Reverse] [a] | +| qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | semmle.label | *call to getInner [Reverse] [a] | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | semmle.label | pointerSetA output argument [Reverse] [a] | | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | semmle.label | pointerSetA output argument [a] | | qualifiers.cpp:32:35:32:44 | call to user_input | semmle.label | call to user_input | | qualifiers.cpp:33:10:33:14 | *outer [*inner, a] | semmle.label | *outer [*inner, a] | | qualifiers.cpp:33:16:33:20 | *inner [a] | semmle.label | *inner [a] | | qualifiers.cpp:33:23:33:23 | a | semmle.label | a | | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | semmle.label | ** ... [Reverse] [a] | +| qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | semmle.label | ** ... [Reverse] [a] | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | semmle.label | referenceSetA output argument [Reverse] [a] | | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | semmle.label | referenceSetA output argument [a] | | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | semmle.label | getInner output argument [*inner, a] | | qualifiers.cpp:37:38:37:47 | call to user_input | semmle.label | call to user_input | @@ -1816,14 +1770,12 @@ nodes | simple.cpp:19:22:19:23 | *this [b_] | semmle.label | *this [b_] | | simple.cpp:19:22:19:23 | b_ | semmle.label | b_ | | simple.cpp:19:22:19:23 | b_ | semmle.label | b_ | -| simple.cpp:20:10:20:13 | *this [Return] [a_] | semmle.label | *this [Return] [a_] | +| simple.cpp:20:10:20:13 | *this [Reverse] [a_] | semmle.label | *this [Reverse] [a_] | | simple.cpp:20:19:20:19 | a | semmle.label | a | -| simple.cpp:20:24:20:25 | *this [Reverse] [a_] | semmle.label | *this [Reverse] [a_] | | simple.cpp:20:24:20:25 | *this [post update] [a_] | semmle.label | *this [post update] [a_] | | simple.cpp:20:24:20:29 | ... = ... | semmle.label | ... = ... | -| simple.cpp:21:10:21:13 | *this [Return] [b_] | semmle.label | *this [Return] [b_] | +| simple.cpp:21:10:21:13 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | | simple.cpp:21:19:21:19 | b | semmle.label | b | -| simple.cpp:21:24:21:25 | *this [Reverse] [b_] | semmle.label | *this [Reverse] [b_] | | simple.cpp:21:24:21:25 | *this [post update] [b_] | semmle.label | *this [post update] [b_] | | simple.cpp:21:24:21:29 | ... = ... | semmle.label | ... = ... | | simple.cpp:26:15:26:15 | *f [a_] | semmle.label | *f [a_] | @@ -1916,75 +1868,79 @@ nodes | struct_init.c:46:10:46:14 | *outer [*pointerAB, a] | semmle.label | *outer [*pointerAB, a] | | struct_init.c:46:16:46:24 | *pointerAB [a] | semmle.label | *pointerAB [a] | subpaths -| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | *this [Return] [c] | A.cpp:31:14:31:21 | call to B [c] | +| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | *this [Reverse] [c] | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | A.cpp:29:15:29:18 | **make [c] | A.cpp:48:12:48:18 | *call to make [c] | -| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Return] [c] | A.cpp:55:5:55:5 | set output argument [c] | +| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Reverse] [c] | A.cpp:55:5:55:5 | set output argument [c] | | A.cpp:56:10:56:10 | *b [c] | A.cpp:28:8:28:10 | *this [c] | A.cpp:28:8:28:10 | *get | A.cpp:56:10:56:17 | call to get | | A.cpp:57:11:57:24 | *new [c] | A.cpp:28:8:28:10 | *this [c] | A.cpp:28:8:28:10 | *get | A.cpp:57:10:57:32 | call to get | -| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | *this [Return] [c] | A.cpp:57:11:57:24 | call to B [c] | +| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | *this [Reverse] [c] | A.cpp:57:11:57:24 | call to B [c] | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | A.cpp:85:9:85:14 | **setOnB [c] | A.cpp:64:10:64:15 | *call to setOnB [c] | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | A.cpp:78:6:78:15 | **setOnBWrap [c] | A.cpp:73:10:73:19 | *call to setOnBWrap [c] | | A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | A.cpp:85:9:85:14 | **setOnB [c] | A.cpp:81:10:81:15 | *call to setOnB [c] | -| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Return] [c] | A.cpp:90:7:90:8 | set output argument [c] | -| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Return] [c] | A.cpp:126:5:126:5 | set output argument [c] | -| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:140:5:140:5 | *this [Return] [b] | A.cpp:151:12:151:24 | call to D [b] | +| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Reverse] [c] | A.cpp:90:7:90:8 | set output argument [c] | +| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | *this [Reverse] [c] | A.cpp:126:5:126:5 | set output argument [c] | +| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:140:5:140:5 | *this [Reverse] [b] | A.cpp:151:12:151:24 | call to D [b] | | A.cpp:152:10:152:13 | *b [c] | A.cpp:173:26:173:26 | *o [c] | A.cpp:173:26:173:26 | *o [c] | A.cpp:152:10:152:13 | sink output argument [c] | -| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | A.cpp:181:5:181:10 | *this [Return] [head] | A.cpp:160:18:160:60 | call to MyList [head] | -| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:181:32:181:35 | *next [head] | A.cpp:181:5:181:10 | *this [Return] [*next, head] | A.cpp:161:18:161:40 | call to MyList [*next, head] | -| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:181:32:181:35 | *next [*next, head] | A.cpp:181:5:181:10 | *this [Return] [*next, *next, head] | A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | -| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:33:5:33:8 | *this [Return] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | -| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:44:16:44:17 | *b1 [elem1] | B.cpp:44:5:44:8 | *this [Return] [*box1, elem1] | B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | -| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:33:5:33:8 | *this [Return] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | -| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:44:16:44:17 | *b1 [elem2] | B.cpp:44:5:44:8 | *this [Return] [*box1, elem2] | B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | +| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | A.cpp:181:5:181:10 | *this [Reverse] [head] | A.cpp:160:18:160:60 | call to MyList [head] | +| A.cpp:161:38:161:39 | *l1 [head] | A.cpp:181:32:181:35 | *next [head] | A.cpp:181:5:181:10 | *this [Reverse] [*next, head] | A.cpp:161:18:161:40 | call to MyList [*next, head] | +| A.cpp:162:38:162:39 | *l2 [*next, head] | A.cpp:181:32:181:35 | *next [*next, head] | A.cpp:181:5:181:10 | *this [Reverse] [*next, *next, head] | A.cpp:162:18:162:40 | call to MyList [*next, *next, head] | +| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:33:5:33:8 | *this [Reverse] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | +| B.cpp:8:25:8:26 | *b1 [elem1] | B.cpp:44:16:44:17 | *b1 [elem1] | B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem1] | B.cpp:8:16:8:27 | call to Box2 [*box1, elem1] | +| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:33:5:33:8 | *this [Reverse] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | +| B.cpp:17:25:17:26 | *b1 [elem2] | B.cpp:44:16:44:17 | *b1 [elem2] | B.cpp:44:5:44:8 | *this [Reverse] [*box1, elem2] | B.cpp:17:16:17:27 | call to Box2 [*box1, elem2] | | D.cpp:22:10:22:11 | *b2 [*box, elem] | D.cpp:17:11:17:17 | *this [*box, elem] | D.cpp:17:11:17:17 | **getBox1 [elem] | D.cpp:22:14:22:20 | *call to getBox1 [elem] | | D.cpp:22:14:22:20 | *call to getBox1 [elem] | D.cpp:10:11:10:17 | *this [elem] | D.cpp:10:11:10:17 | *getElem | D.cpp:22:10:22:33 | call to getElem | -| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | *this [Return] [elem] | D.cpp:37:8:37:10 | setElem output argument [elem] | -| D.cpp:44:8:44:14 | *call to getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | *this [Return] [*box, elem] | D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | -| D.cpp:51:8:51:14 | *call to getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | *this [Return] [*box, elem] | D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | -| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | *this [Return] [elem] | D.cpp:51:8:51:14 | setElem output argument [elem] | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | *this [Return] [a] | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [Return] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | +| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | *this [Reverse] [elem] | D.cpp:37:8:37:10 | setElem output argument [elem] | +| D.cpp:44:8:44:14 | *call to getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | *this [Reverse] [*box, elem] | D.cpp:44:5:44:5 | getBox1 output argument [*box, elem] | +| D.cpp:51:8:51:14 | *call to getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | **getBox1 [Reverse] [elem] | D.cpp:17:11:17:17 | *this [Reverse] [*box, elem] | D.cpp:51:5:51:5 | getBox1 output argument [*box, elem] | +| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | *this [Reverse] [elem] | D.cpp:51:8:51:14 | setElem output argument [elem] | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | *this [Reverse] [a] | by_reference.cpp:20:5:20:8 | setDirectly output argument [a] | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [Reverse] [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [a] | by_reference.cpp:24:19:24:22 | nonMemberSetA output argument [a] | | by_reference.cpp:40:12:40:15 | *this [a] | by_reference.cpp:35:9:35:19 | *this [a] | by_reference.cpp:35:9:35:19 | *getDirectly | by_reference.cpp:40:18:40:28 | call to getDirectly | | by_reference.cpp:44:26:44:29 | *this [a] | by_reference.cpp:31:46:31:46 | *s [a] | by_reference.cpp:31:16:31:28 | *nonMemberGetA | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | *this [Return] [a] | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | *this [Reverse] [a] | by_reference.cpp:50:3:50:3 | setDirectly output argument [a] | | by_reference.cpp:51:8:51:8 | *s [a] | by_reference.cpp:35:9:35:19 | *this [a] | by_reference.cpp:35:9:35:19 | *getDirectly | by_reference.cpp:51:10:51:20 | call to getDirectly | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:19:8:19:20 | *this [Return] [a] | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:19:8:19:20 | *this [Reverse] [a] | by_reference.cpp:56:3:56:3 | setIndirectly output argument [a] | | by_reference.cpp:57:8:57:8 | *s [a] | by_reference.cpp:39:9:39:21 | *this [a] | by_reference.cpp:39:9:39:21 | *getIndirectly | by_reference.cpp:57:10:57:22 | call to getIndirectly | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:23:8:23:26 | *this [Return] [a] | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:23:8:23:26 | *this [Reverse] [a] | by_reference.cpp:62:3:62:3 | setThroughNonMember output argument [a] | | by_reference.cpp:63:8:63:8 | *s [a] | by_reference.cpp:43:9:43:27 | *this [a] | by_reference.cpp:43:9:43:27 | *getThroughNonMember | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [Return] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [Reverse] [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | *s [a] | by_reference.cpp:68:17:68:18 | nonMemberSetA output argument [a] | | by_reference.cpp:69:22:69:23 | *& ... [a] | by_reference.cpp:31:46:31:46 | *s [a] | by_reference.cpp:31:16:31:28 | *nonMemberGetA | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | complex.cpp:42:16:42:16 | *f [a_] | complex.cpp:9:7:9:7 | *this [a_] | complex.cpp:9:7:9:7 | *a | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | *f [b_] | complex.cpp:10:7:10:7 | *this [b_] | complex.cpp:10:7:10:7 | *b | complex.cpp:43:18:43:18 | call to b | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | *this [Return] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | *this [Return] [b_] | complex.cpp:54:12:54:12 | setB output argument [b_] | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | *this [Return] [a_] | complex.cpp:55:12:55:12 | setA output argument [a_] | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | *this [Return] [b_] | complex.cpp:56:12:56:12 | setB output argument [b_] | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | *this [Reverse] [a_] | complex.cpp:53:12:53:12 | setA output argument [a_] | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | *this [Reverse] [b_] | complex.cpp:54:12:54:12 | setB output argument [b_] | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | *this [Reverse] [a_] | complex.cpp:55:12:55:12 | setA output argument [a_] | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | *this [Reverse] [b_] | complex.cpp:56:12:56:12 | setB output argument [b_] | | constructors.cpp:28:10:28:10 | *f [a_] | constructors.cpp:18:9:18:9 | *this [a_] | constructors.cpp:18:9:18:9 | *a | constructors.cpp:28:12:28:12 | call to a | | constructors.cpp:29:10:29:10 | *f [b_] | constructors.cpp:19:9:19:9 | *this [b_] | constructors.cpp:19:9:19:9 | *b | constructors.cpp:29:12:29:12 | call to b | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | *this [Return] [a_] | constructors.cpp:34:9:34:9 | call to Foo [a_] | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | *this [Return] [b_] | constructors.cpp:35:9:35:9 | call to Foo [b_] | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | *this [Return] [a_] | constructors.cpp:36:9:36:9 | call to Foo [a_] | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | *this [Return] [b_] | constructors.cpp:36:9:36:9 | call to Foo [b_] | -| qualifiers.cpp:22:11:22:18 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | -| qualifiers.cpp:27:11:27:18 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:10:9:13 | *this [Return] [a] | qualifiers.cpp:27:11:27:18 | setA output argument [a] | -| qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | *inner [Return] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | *this [Reverse] [a_] | constructors.cpp:34:9:34:9 | call to Foo [a_] | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | constructors.cpp:35:9:35:9 | call to Foo [b_] | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | *this [Reverse] [a_] | constructors.cpp:36:9:36:9 | call to Foo [a_] | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | *this [Reverse] [b_] | constructors.cpp:36:9:36:9 | call to Foo [b_] | +| qualifiers.cpp:22:11:22:18 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:22:5:22:9 | getInner output argument [*inner, a] | +| qualifiers.cpp:27:11:27:18 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:27:5:27:9 | getInner output argument [*inner, a] | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:10:9:13 | *this [Reverse] [a] | qualifiers.cpp:27:11:27:18 | setA output argument [a] | +| qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:32:17:32:21 | getInner output argument [*inner, a] | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | +| qualifiers.cpp:32:23:32:30 | pointerSetA output argument [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | *call to getInner [Reverse] [a] | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | *inner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | *inner [a] | qualifiers.cpp:32:23:32:30 | pointerSetA output argument [a] | -| qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | *inner [Return] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | +| qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:37:20:37:24 | getInner output argument [*inner, a] | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | +| qualifiers.cpp:37:19:37:35 | referenceSetA output argument [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:37:19:37:35 | ** ... [Reverse] [a] | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | *inner [Reverse] [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | *inner [a] | qualifiers.cpp:37:19:37:35 | referenceSetA output argument [a] | -| qualifiers.cpp:42:6:42:22 | ** ... [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | -| qualifiers.cpp:47:15:47:22 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Return] [*inner, a] | qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | +| qualifiers.cpp:42:6:42:22 | ** ... [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:42:7:42:11 | getInner output argument [*inner, a] | +| qualifiers.cpp:47:15:47:22 | *call to getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | **getInner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | *this [Reverse] [*inner, a] | qualifiers.cpp:47:6:47:11 | getInner output argument [*inner, a] | | simple.cpp:28:10:28:10 | *f [a_] | simple.cpp:18:9:18:9 | *this [a_] | simple.cpp:18:9:18:9 | *a | simple.cpp:28:12:28:12 | call to a | | simple.cpp:29:10:29:10 | *f [b_] | simple.cpp:19:9:19:9 | *this [b_] | simple.cpp:19:9:19:9 | *b | simple.cpp:29:12:29:12 | call to b | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | *this [Return] [a_] | simple.cpp:39:5:39:5 | setA output argument [a_] | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | *this [Return] [b_] | simple.cpp:40:5:40:5 | setB output argument [b_] | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | *this [Return] [a_] | simple.cpp:41:5:41:5 | setA output argument [a_] | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | *this [Return] [b_] | simple.cpp:42:5:42:5 | setB output argument [b_] | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | *this [Reverse] [a_] | simple.cpp:39:5:39:5 | setA output argument [a_] | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | *this [Reverse] [b_] | simple.cpp:40:5:40:5 | setB output argument [b_] | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | *this [Reverse] [a_] | simple.cpp:41:5:41:5 | setA output argument [a_] | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | *this [Reverse] [b_] | simple.cpp:42:5:42:5 | setB output argument [b_] | | simple.cpp:84:14:84:20 | *this [f2, f1] | simple.cpp:78:9:78:15 | *this [f2, f1] | simple.cpp:78:9:78:15 | *getf2f1 | simple.cpp:84:14:84:20 | call to getf2f1 | | struct_init.c:24:10:24:12 | *& ... [a] | struct_init.c:14:24:14:25 | *ab [a] | struct_init.c:14:24:14:25 | *ab [a] | struct_init.c:24:10:24:12 | absink output argument [a] | #select diff --git a/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected b/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected index bd49bc98279bc..d4a7a92aa7f23 100644 --- a/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected +++ b/cpp/ql/test/library-tests/dataflow/fields/path-flow.expected @@ -1,9 +1,9 @@ edges | A.cpp:23:10:23:10 | c | A.cpp:25:7:25:17 | ... = ... | provenance | | -| A.cpp:25:7:25:10 | this [post update] [c] | A.cpp:23:5:23:5 | this [Return] [c] | provenance | | +| A.cpp:25:7:25:10 | this [post update] [c] | A.cpp:23:5:23:5 | this [Reverse] [c] | provenance | | | A.cpp:25:7:25:17 | ... = ... | A.cpp:25:7:25:10 | this [post update] [c] | provenance | | | A.cpp:27:17:27:17 | c | A.cpp:27:22:27:32 | ... = ... | provenance | | -| A.cpp:27:22:27:25 | this [post update] [c] | A.cpp:27:10:27:12 | this [Return] [c] | provenance | | +| A.cpp:27:22:27:25 | this [post update] [c] | A.cpp:27:10:27:12 | this [Reverse] [c] | provenance | | | A.cpp:27:22:27:32 | ... = ... | A.cpp:27:22:27:25 | this [post update] [c] | provenance | | | A.cpp:28:8:28:10 | this [c] | A.cpp:28:23:28:26 | this [c] | provenance | | | A.cpp:28:23:28:26 | this [c] | A.cpp:28:29:28:29 | c | provenance | | @@ -30,49 +30,22 @@ edges | A.cpp:57:11:57:24 | new [c] | A.cpp:57:28:57:30 | call to get | provenance | | | A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | provenance | | | A.cpp:57:17:57:23 | new | A.cpp:57:11:57:24 | call to B [c] | provenance | | -| A.cpp:64:10:64:15 | call to setOnB [Reverse] [c] | A.cpp:64:17:64:18 | ref arg b1 [c] | provenance | | -| A.cpp:64:10:64:15 | call to setOnB [Reverse] [c] | A.cpp:93:12:93:13 | b1 [Reverse] [c] | provenance | | | A.cpp:64:10:64:15 | call to setOnB [c] | A.cpp:66:10:66:11 | b2 [c] | provenance | | -| A.cpp:64:17:64:18 | ref arg b1 [c] | A.cpp:65:10:65:11 | b1 [c] | provenance | | | A.cpp:64:21:64:28 | new | A.cpp:64:10:64:15 | call to setOnB [c] | provenance | | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | provenance | | -| A.cpp:65:10:65:11 | b1 [c] | A.cpp:65:14:65:14 | c | provenance | | | A.cpp:66:10:66:11 | b2 [c] | A.cpp:66:14:66:14 | c | provenance | | -| A.cpp:66:10:66:11 | b2 [c] | A.cpp:66:14:66:14 | c | provenance | | -| A.cpp:66:10:66:11 | b2 [post update] [c] | A.cpp:64:10:64:15 | call to setOnB [Reverse] [c] | provenance | | -| A.cpp:66:14:66:14 | c | A.cpp:66:14:66:14 | ref arg c | provenance | | -| A.cpp:66:14:66:14 | c | A.cpp:173:26:173:26 | o | provenance | | -| A.cpp:66:14:66:14 | ref arg c | A.cpp:66:10:66:11 | b2 [post update] [c] | provenance | | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:73:10:73:19 | call to setOnBWrap [c] | provenance | | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:73:21:73:22 | ref arg b1 [c] | provenance | | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | provenance | | | A.cpp:73:10:73:19 | call to setOnBWrap [c] | A.cpp:75:10:75:11 | b2 [c] | provenance | | -| A.cpp:73:21:73:22 | ref arg b1 [c] | A.cpp:74:10:74:11 | b1 [c] | provenance | | | A.cpp:73:25:73:32 | new | A.cpp:73:10:73:19 | call to setOnBWrap [c] | provenance | | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | provenance | | -| A.cpp:74:10:74:11 | b1 [c] | A.cpp:74:14:74:14 | c | provenance | | -| A.cpp:75:10:75:11 | b2 [c] | A.cpp:75:14:75:14 | c | provenance | | | A.cpp:75:10:75:11 | b2 [c] | A.cpp:75:14:75:14 | c | provenance | | -| A.cpp:75:10:75:11 | b2 [post update] [c] | A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | provenance | | -| A.cpp:75:14:75:14 | c | A.cpp:75:14:75:14 | ref arg c | provenance | | -| A.cpp:75:14:75:14 | c | A.cpp:173:26:173:26 | o | provenance | | -| A.cpp:75:14:75:14 | ref arg c | A.cpp:75:10:75:11 | b2 [post update] [c] | provenance | | | A.cpp:78:27:78:27 | c | A.cpp:81:21:81:21 | c | provenance | | -| A.cpp:81:10:81:15 | call to setOnB [Reverse] [c] | A.cpp:81:17:81:18 | ref arg b1 [c] | provenance | | -| A.cpp:81:10:81:15 | call to setOnB [Reverse] [c] | A.cpp:93:12:93:13 | b1 [Reverse] [c] | provenance | | | A.cpp:81:10:81:15 | call to setOnB [c] | A.cpp:82:12:82:24 | ... ? ... : ... [c] | provenance | | -| A.cpp:81:17:81:18 | ref arg b1 [c] | A.cpp:78:20:78:21 | b1 [Return] [c] | provenance | | -| A.cpp:81:17:81:18 | ref arg b1 [c] | A.cpp:78:20:78:21 | b1 [c] | provenance | | -| A.cpp:81:17:81:18 | ref arg b1 [c] | A.cpp:82:12:82:24 | ... ? ... : ... [c] | provenance | | | A.cpp:81:21:81:21 | c | A.cpp:81:10:81:15 | call to setOnB [c] | provenance | | | A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | provenance | | -| A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | A.cpp:78:20:78:21 | b1 [Return] [c] | provenance | | -| A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | A.cpp:81:10:81:15 | call to setOnB [Reverse] [c] | provenance | | | A.cpp:85:26:85:26 | c | A.cpp:90:15:90:15 | c | provenance | | | A.cpp:90:7:90:8 | ref arg b2 [c] | A.cpp:91:14:91:15 | b2 [c] | provenance | | | A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | provenance | | | A.cpp:90:15:90:15 | c | A.cpp:90:7:90:8 | ref arg b2 [c] | provenance | | -| A.cpp:93:12:93:13 | b1 [Reverse] [c] | A.cpp:85:19:85:20 | b1 [Return] [c] | provenance | | | A.cpp:98:12:98:18 | new | A.cpp:100:5:100:13 | ... = ... | provenance | | | A.cpp:100:5:100:6 | c1 [post update] [a] | A.cpp:101:8:101:9 | c1 [a] | provenance | | | A.cpp:100:5:100:13 | ... = ... | A.cpp:100:5:100:6 | c1 [post update] [a] | provenance | | @@ -81,27 +54,27 @@ edges | A.cpp:103:14:103:14 | c [a] | A.cpp:120:12:120:13 | c1 [a] | provenance | | | A.cpp:107:12:107:13 | c1 [a] | A.cpp:107:16:107:16 | a | provenance | | | A.cpp:120:12:120:13 | c1 [a] | A.cpp:120:16:120:16 | a | provenance | | -| A.cpp:124:14:124:14 | b [Return] [c] | A.cpp:131:8:131:8 | ref arg b [c] | provenance | | +| A.cpp:124:14:124:14 | b [Reverse] [c] | A.cpp:131:8:131:8 | ref arg b [c] | provenance | | | A.cpp:124:14:124:14 | b [c] | A.cpp:131:8:131:8 | ref arg b [c] | provenance | | -| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:124:14:124:14 | b [Return] [c] | provenance | | +| A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:124:14:124:14 | b [Reverse] [c] | provenance | | | A.cpp:126:5:126:5 | ref arg b [c] | A.cpp:124:14:124:14 | b [c] | provenance | | | A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | provenance | | | A.cpp:126:12:126:18 | new | A.cpp:126:5:126:5 | ref arg b [c] | provenance | | | A.cpp:131:8:131:8 | ref arg b [c] | A.cpp:132:10:132:10 | b [c] | provenance | | | A.cpp:132:10:132:10 | b [c] | A.cpp:132:13:132:13 | c | provenance | | -| A.cpp:140:5:140:5 | this [Return] [b, c] | A.cpp:151:12:151:24 | call to D [b, c] | provenance | | -| A.cpp:140:5:140:5 | this [Return] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | +| A.cpp:140:5:140:5 | this [Reverse] [b, c] | A.cpp:151:12:151:24 | call to D [b, c] | provenance | | +| A.cpp:140:5:140:5 | this [Reverse] [b] | A.cpp:151:12:151:24 | call to D [b] | provenance | | | A.cpp:140:13:140:13 | b | A.cpp:143:7:143:31 | ... = ... | provenance | | -| A.cpp:140:13:140:13 | b [Return] [c] | A.cpp:151:18:151:18 | ref arg b [c] | provenance | | +| A.cpp:140:13:140:13 | b [Reverse] [c] | A.cpp:151:18:151:18 | ref arg b [c] | provenance | | | A.cpp:140:13:140:13 | b [c] | A.cpp:151:18:151:18 | ref arg b [c] | provenance | | -| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:140:13:140:13 | b [Return] [c] | provenance | | +| A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:140:13:140:13 | b [Reverse] [c] | provenance | | | A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:140:13:140:13 | b [c] | provenance | | | A.cpp:142:7:142:7 | b [post update] [c] | A.cpp:143:7:143:31 | ... = ... [c] | provenance | | | A.cpp:142:7:142:20 | ... = ... | A.cpp:142:7:142:7 | b [post update] [c] | provenance | | | A.cpp:142:14:142:20 | new | A.cpp:142:7:142:20 | ... = ... | provenance | | -| A.cpp:143:7:143:10 | this [post update] [b, c] | A.cpp:140:5:140:5 | this [Return] [b, c] | provenance | | -| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:140:5:140:5 | this [Return] [b] | provenance | | -| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:140:5:140:5 | this [Return] [b] | provenance | | +| A.cpp:143:7:143:10 | this [post update] [b, c] | A.cpp:140:5:140:5 | this [Reverse] [b, c] | provenance | | +| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:140:5:140:5 | this [Reverse] [b] | provenance | | +| A.cpp:143:7:143:10 | this [post update] [b] | A.cpp:140:5:140:5 | this [Reverse] [b] | provenance | | | A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | provenance | | | A.cpp:143:7:143:31 | ... = ... | A.cpp:143:7:143:10 | this [post update] [b] | provenance | | | A.cpp:143:7:143:31 | ... = ... [c] | A.cpp:143:7:143:10 | this [post update] [b, c] | provenance | | @@ -153,10 +126,10 @@ edges | A.cpp:181:15:181:21 | newHead | A.cpp:183:7:183:20 | ... = ... | provenance | | | A.cpp:181:32:181:35 | next [head] | A.cpp:184:7:184:23 | ... = ... [head] | provenance | | | A.cpp:181:32:181:35 | next [next, head] | A.cpp:184:7:184:23 | ... = ... [next, head] | provenance | | -| A.cpp:183:7:183:10 | this [post update] [head] | A.cpp:181:5:181:10 | this [Return] [head] | provenance | | +| A.cpp:183:7:183:10 | this [post update] [head] | A.cpp:181:5:181:10 | this [Reverse] [head] | provenance | | | A.cpp:183:7:183:20 | ... = ... | A.cpp:183:7:183:10 | this [post update] [head] | provenance | | -| A.cpp:184:7:184:10 | this [post update] [next, head] | A.cpp:181:5:181:10 | this [Return] [next, head] | provenance | | -| A.cpp:184:7:184:10 | this [post update] [next, next, head] | A.cpp:181:5:181:10 | this [Return] [next, next, head] | provenance | | +| A.cpp:184:7:184:10 | this [post update] [next, head] | A.cpp:181:5:181:10 | this [Reverse] [next, head] | provenance | | +| A.cpp:184:7:184:10 | this [post update] [next, next, head] | A.cpp:181:5:181:10 | this [Reverse] [next, next, head] | provenance | | | A.cpp:184:7:184:23 | ... = ... [head] | A.cpp:184:7:184:10 | this [post update] [next, head] | provenance | | | A.cpp:184:7:184:23 | ... = ... [next, head] | A.cpp:184:7:184:10 | this [post update] [next, next, head] | provenance | | | B.cpp:6:15:6:24 | new | B.cpp:7:25:7:25 | e | provenance | | @@ -179,25 +152,25 @@ edges | B.cpp:19:14:19:17 | box1 [elem2] | B.cpp:19:20:19:24 | elem2 | provenance | | | B.cpp:33:16:33:17 | e1 | B.cpp:35:7:35:22 | ... = ... | provenance | | | B.cpp:33:26:33:27 | e2 | B.cpp:36:7:36:22 | ... = ... | provenance | | -| B.cpp:35:7:35:10 | this [post update] [elem1] | B.cpp:33:5:33:8 | this [Return] [elem1] | provenance | | +| B.cpp:35:7:35:10 | this [post update] [elem1] | B.cpp:33:5:33:8 | this [Reverse] [elem1] | provenance | | | B.cpp:35:7:35:22 | ... = ... | B.cpp:35:7:35:10 | this [post update] [elem1] | provenance | | -| B.cpp:36:7:36:10 | this [post update] [elem2] | B.cpp:33:5:33:8 | this [Return] [elem2] | provenance | | +| B.cpp:36:7:36:10 | this [post update] [elem2] | B.cpp:33:5:33:8 | this [Reverse] [elem2] | provenance | | | B.cpp:36:7:36:22 | ... = ... | B.cpp:36:7:36:10 | this [post update] [elem2] | provenance | | | B.cpp:44:16:44:17 | b1 [elem1] | B.cpp:46:7:46:21 | ... = ... [elem1] | provenance | | | B.cpp:44:16:44:17 | b1 [elem2] | B.cpp:46:7:46:21 | ... = ... [elem2] | provenance | | -| B.cpp:46:7:46:10 | this [post update] [box1, elem1] | B.cpp:44:5:44:8 | this [Return] [box1, elem1] | provenance | | -| B.cpp:46:7:46:10 | this [post update] [box1, elem2] | B.cpp:44:5:44:8 | this [Return] [box1, elem2] | provenance | | +| B.cpp:46:7:46:10 | this [post update] [box1, elem1] | B.cpp:44:5:44:8 | this [Reverse] [box1, elem1] | provenance | | +| B.cpp:46:7:46:10 | this [post update] [box1, elem2] | B.cpp:44:5:44:8 | this [Reverse] [box1, elem2] | provenance | | | B.cpp:46:7:46:21 | ... = ... [elem1] | B.cpp:46:7:46:10 | this [post update] [box1, elem1] | provenance | | | B.cpp:46:7:46:21 | ... = ... [elem2] | B.cpp:46:7:46:10 | this [post update] [box1, elem2] | provenance | | | C.cpp:18:12:18:18 | call to C [s1] | C.cpp:19:5:19:5 | c [s1] | provenance | | | C.cpp:18:12:18:18 | call to C [s3] | C.cpp:19:5:19:5 | c [s3] | provenance | | | C.cpp:19:5:19:5 | c [s1] | C.cpp:27:8:27:11 | this [s1] | provenance | | | C.cpp:19:5:19:5 | c [s3] | C.cpp:27:8:27:11 | this [s3] | provenance | | -| C.cpp:22:3:22:3 | this [Return] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | -| C.cpp:22:3:22:3 | this [Return] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | -| C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | C.cpp:22:3:22:3 | this [Return] [s1] | provenance | | +| C.cpp:22:3:22:3 | this [Reverse] [s1] | C.cpp:18:12:18:18 | call to C [s1] | provenance | | +| C.cpp:22:3:22:3 | this [Reverse] [s3] | C.cpp:18:12:18:18 | call to C [s3] | provenance | | +| C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | C.cpp:22:3:22:3 | this [Reverse] [s1] | provenance | | | C.cpp:22:12:22:21 | new | C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | provenance | | -| C.cpp:24:5:24:8 | this [post update] [s3] | C.cpp:22:3:22:3 | this [Return] [s3] | provenance | | +| C.cpp:24:5:24:8 | this [post update] [s3] | C.cpp:22:3:22:3 | this [Reverse] [s3] | provenance | | | C.cpp:24:5:24:25 | ... = ... | C.cpp:24:5:24:8 | this [post update] [s3] | provenance | | | C.cpp:24:16:24:25 | new | C.cpp:24:5:24:25 | ... = ... | provenance | | | C.cpp:27:8:27:11 | this [s1] | C.cpp:29:10:29:11 | this [s1] | provenance | | @@ -207,11 +180,11 @@ edges | D.cpp:10:11:10:17 | this [elem] | D.cpp:10:30:10:33 | this [elem] | provenance | | | D.cpp:10:30:10:33 | this [elem] | D.cpp:10:30:10:33 | elem | provenance | | | D.cpp:11:24:11:24 | e | D.cpp:11:29:11:36 | ... = ... | provenance | | -| D.cpp:11:29:11:32 | this [post update] [elem] | D.cpp:11:10:11:16 | this [Return] [elem] | provenance | | +| D.cpp:11:29:11:32 | this [post update] [elem] | D.cpp:11:10:11:16 | this [Reverse] [elem] | provenance | | | D.cpp:11:29:11:36 | ... = ... | D.cpp:11:29:11:32 | this [post update] [elem] | provenance | | | D.cpp:17:11:17:17 | this [box, elem] | D.cpp:17:30:17:32 | this [box, elem] | provenance | | | D.cpp:17:30:17:32 | box [Reverse] [elem] | D.cpp:17:30:17:32 | this [Reverse] [box, elem] | provenance | | -| D.cpp:17:30:17:32 | this [Reverse] [box, elem] | D.cpp:17:11:17:17 | this [Return] [box, elem] | provenance | | +| D.cpp:17:30:17:32 | this [Reverse] [box, elem] | D.cpp:17:11:17:17 | this [Reverse] [box, elem] | provenance | | | D.cpp:17:30:17:32 | this [box, elem] | D.cpp:17:30:17:32 | box [elem] | provenance | | | D.cpp:21:30:21:31 | b2 [box, elem] | D.cpp:22:10:22:11 | b2 [box, elem] | provenance | | | D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:17:11:17:17 | this [box, elem] | provenance | | @@ -266,15 +239,15 @@ edges | E.cpp:32:10:32:10 | b [buffer] | E.cpp:32:13:32:18 | buffer | provenance | | | E.cpp:33:18:33:19 | & ... [data, buffer] | E.cpp:19:27:19:27 | p [data, buffer] | provenance | | | E.cpp:33:19:33:19 | p [data, buffer] | E.cpp:33:18:33:19 | & ... [data, buffer] | provenance | | -| aliasing.cpp:8:23:8:23 | s [Return] [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | provenance | | +| aliasing.cpp:8:23:8:23 | s [Reverse] [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | provenance | | | aliasing.cpp:8:23:8:23 | s [m1] | aliasing.cpp:25:17:25:19 | ref arg & ... [m1] | provenance | | -| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:8:23:8:23 | s [Return] [m1] | provenance | | +| aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:8:23:8:23 | s [Reverse] [m1] | provenance | | | aliasing.cpp:9:3:9:3 | s [post update] [m1] | aliasing.cpp:8:23:8:23 | s [m1] | provenance | | | aliasing.cpp:9:3:9:22 | ... = ... | aliasing.cpp:9:3:9:3 | s [post update] [m1] | provenance | | | aliasing.cpp:9:11:9:20 | call to user_input | aliasing.cpp:9:3:9:22 | ... = ... | provenance | | -| aliasing.cpp:12:25:12:25 | s [Return] [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | provenance | | +| aliasing.cpp:12:25:12:25 | s [Reverse] [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | provenance | | | aliasing.cpp:12:25:12:25 | s [m1] | aliasing.cpp:26:19:26:20 | ref arg s2 [m1] | provenance | | -| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:12:25:12:25 | s [Return] [m1] | provenance | | +| aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:12:25:12:25 | s [Reverse] [m1] | provenance | | | aliasing.cpp:13:3:13:3 | s [post update] [m1] | aliasing.cpp:12:25:12:25 | s [m1] | provenance | | | aliasing.cpp:13:3:13:21 | ... = ... | aliasing.cpp:13:3:13:3 | s [post update] [m1] | provenance | | | aliasing.cpp:13:10:13:19 | call to user_input | aliasing.cpp:13:3:13:21 | ... = ... | provenance | | @@ -297,13 +270,13 @@ edges | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:175:15:175:22 | ref arg & ... | provenance | | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:187:15:187:22 | ref arg & ... | provenance | | | aliasing.cpp:105:23:105:24 | pa | aliasing.cpp:200:15:200:24 | ref arg & ... | provenance | | -| aliasing.cpp:105:23:105:24 | pa [Return] | aliasing.cpp:158:17:158:20 | ref arg data | provenance | | -| aliasing.cpp:105:23:105:24 | pa [Return] | aliasing.cpp:164:17:164:20 | ref arg data | provenance | | -| aliasing.cpp:105:23:105:24 | pa [Return] | aliasing.cpp:175:15:175:22 | ref arg & ... | provenance | | -| aliasing.cpp:105:23:105:24 | pa [Return] | aliasing.cpp:187:15:187:22 | ref arg & ... | provenance | | -| aliasing.cpp:105:23:105:24 | pa [Return] | aliasing.cpp:200:15:200:24 | ref arg & ... | provenance | | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | aliasing.cpp:158:17:158:20 | ref arg data | provenance | | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | aliasing.cpp:164:17:164:20 | ref arg data | provenance | | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | aliasing.cpp:175:15:175:22 | ref arg & ... | provenance | | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | aliasing.cpp:187:15:187:22 | ref arg & ... | provenance | | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | aliasing.cpp:200:15:200:24 | ref arg & ... | provenance | | | aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa | provenance | | -| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa [Return] | provenance | | +| aliasing.cpp:106:9:106:18 | call to user_input | aliasing.cpp:105:23:105:24 | pa [Reverse] | provenance | | | aliasing.cpp:158:15:158:15 | s [post update] [data] | aliasing.cpp:159:9:159:9 | s [data] | provenance | | | aliasing.cpp:158:17:158:20 | ref arg data | aliasing.cpp:158:15:158:15 | s [post update] [data] | provenance | | | aliasing.cpp:159:9:159:9 | s [data] | aliasing.cpp:159:11:159:14 | data | provenance | | @@ -383,18 +356,18 @@ edges | arrays.cpp:44:10:44:17 | indirect [arr, data] | arrays.cpp:44:20:44:22 | arr [data] | provenance | | | arrays.cpp:44:20:44:22 | arr [data] | arrays.cpp:44:8:44:25 | access to array [data] | provenance | | | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:12:5:12:16 | ... = ... | provenance | | -| by_reference.cpp:12:5:12:5 | s [post update] [a] | by_reference.cpp:11:39:11:39 | s [Return] [a] | provenance | | +| by_reference.cpp:12:5:12:5 | s [post update] [a] | by_reference.cpp:11:39:11:39 | s [Reverse] [a] | provenance | | | by_reference.cpp:12:5:12:5 | s [post update] [a] | by_reference.cpp:11:39:11:39 | s [a] | provenance | | | by_reference.cpp:12:5:12:16 | ... = ... | by_reference.cpp:12:5:12:5 | s [post update] [a] | provenance | | | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:16:5:16:19 | ... = ... | provenance | | -| by_reference.cpp:16:5:16:8 | this [post update] [a] | by_reference.cpp:15:8:15:18 | this [Return] [a] | provenance | | +| by_reference.cpp:16:5:16:8 | this [post update] [a] | by_reference.cpp:15:8:15:18 | this [Reverse] [a] | provenance | | | by_reference.cpp:16:5:16:19 | ... = ... | by_reference.cpp:16:5:16:8 | this [post update] [a] | provenance | | | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:20:23:20:27 | value | provenance | | -| by_reference.cpp:20:5:20:8 | ref arg this [a] | by_reference.cpp:19:8:19:20 | this [Return] [a] | provenance | | +| by_reference.cpp:20:5:20:8 | ref arg this [a] | by_reference.cpp:19:8:19:20 | this [Reverse] [a] | provenance | | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | provenance | | | by_reference.cpp:20:23:20:27 | value | by_reference.cpp:20:5:20:8 | ref arg this [a] | provenance | | | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:24:25:24:29 | value | provenance | | -| by_reference.cpp:24:19:24:22 | ref arg this [a] | by_reference.cpp:23:8:23:26 | this [Return] [a] | provenance | | +| by_reference.cpp:24:19:24:22 | ref arg this [a] | by_reference.cpp:23:8:23:26 | this [Reverse] [a] | provenance | | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | provenance | | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:24:19:24:22 | ref arg this [a] | provenance | | | by_reference.cpp:31:46:31:46 | s [a] | by_reference.cpp:32:12:32:12 | s [a] | provenance | | @@ -428,36 +401,36 @@ edges | by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:31:46:31:46 | s [a] | provenance | | | by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | provenance | | | by_reference.cpp:69:23:69:23 | s [a] | by_reference.cpp:69:22:69:23 | & ... [a] | provenance | | -| by_reference.cpp:83:31:83:35 | inner [Return] [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | provenance | | -| by_reference.cpp:83:31:83:35 | inner [Return] [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | provenance | | -| by_reference.cpp:83:31:83:35 | inner [Return] [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | provenance | | -| by_reference.cpp:83:31:83:35 | inner [Return] [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | provenance | | +| by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | provenance | | | by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:102:21:102:39 | ref arg & ... [a] | provenance | | | by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:103:27:103:35 | ref arg inner_ptr [a] | provenance | | | by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:106:21:106:41 | ref arg & ... [a] | provenance | | | by_reference.cpp:83:31:83:35 | inner [a] | by_reference.cpp:107:29:107:37 | ref arg inner_ptr [a] | provenance | | -| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:83:31:83:35 | inner [Return] [a] | provenance | | +| by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | provenance | | | by_reference.cpp:84:3:84:7 | inner [post update] [a] | by_reference.cpp:83:31:83:35 | inner [a] | provenance | | | by_reference.cpp:84:3:84:25 | ... = ... | by_reference.cpp:84:3:84:7 | inner [post update] [a] | provenance | | | by_reference.cpp:84:14:84:23 | call to user_input | by_reference.cpp:84:3:84:25 | ... = ... | provenance | | -| by_reference.cpp:87:31:87:35 | inner [Return] [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | provenance | | -| by_reference.cpp:87:31:87:35 | inner [Return] [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | provenance | | -| by_reference.cpp:87:31:87:35 | inner [Return] [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | provenance | | -| by_reference.cpp:87:31:87:35 | inner [Return] [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | provenance | | +| by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | provenance | | | by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:122:27:122:38 | ref arg inner_nested [a] | provenance | | | by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:123:21:123:36 | ref arg * ... [a] | provenance | | | by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:126:29:126:40 | ref arg inner_nested [a] | provenance | | | by_reference.cpp:87:31:87:35 | inner [a] | by_reference.cpp:127:21:127:38 | ref arg * ... [a] | provenance | | -| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:87:31:87:35 | inner [Return] [a] | provenance | | +| by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | provenance | | | by_reference.cpp:88:3:88:7 | inner [post update] [a] | by_reference.cpp:87:31:87:35 | inner [a] | provenance | | | by_reference.cpp:88:3:88:24 | ... = ... | by_reference.cpp:88:3:88:7 | inner [post update] [a] | provenance | | | by_reference.cpp:88:13:88:22 | call to user_input | by_reference.cpp:88:3:88:24 | ... = ... | provenance | | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:104:15:104:22 | ref arg & ... | provenance | | | by_reference.cpp:91:25:91:26 | pa | by_reference.cpp:108:15:108:24 | ref arg & ... | provenance | | -| by_reference.cpp:91:25:91:26 | pa [Return] | by_reference.cpp:104:15:104:22 | ref arg & ... | provenance | | -| by_reference.cpp:91:25:91:26 | pa [Return] | by_reference.cpp:108:15:108:24 | ref arg & ... | provenance | | +| by_reference.cpp:91:25:91:26 | pa [Reverse] | by_reference.cpp:104:15:104:22 | ref arg & ... | provenance | | +| by_reference.cpp:91:25:91:26 | pa [Reverse] | by_reference.cpp:108:15:108:24 | ref arg & ... | provenance | | | by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa | provenance | | -| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa [Return] | provenance | | +| by_reference.cpp:92:9:92:18 | call to user_input | by_reference.cpp:91:25:91:26 | pa [Reverse] | provenance | | | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:124:21:124:21 | ref arg a | provenance | | | by_reference.cpp:95:25:95:26 | pa | by_reference.cpp:128:23:128:23 | ref arg a | provenance | | | by_reference.cpp:96:8:96:17 | call to user_input | by_reference.cpp:95:25:95:26 | pa | provenance | | @@ -552,10 +525,10 @@ edges | complex.cpp:10:7:10:7 | this [b_] | complex.cpp:10:20:10:21 | this [b_] | provenance | | | complex.cpp:10:20:10:21 | this [b_] | complex.cpp:10:20:10:21 | b_ | provenance | | | complex.cpp:11:17:11:17 | a | complex.cpp:11:22:11:27 | ... = ... | provenance | | -| complex.cpp:11:22:11:23 | this [post update] [a_] | complex.cpp:11:8:11:11 | this [Return] [a_] | provenance | | +| complex.cpp:11:22:11:23 | this [post update] [a_] | complex.cpp:11:8:11:11 | this [Reverse] [a_] | provenance | | | complex.cpp:11:22:11:27 | ... = ... | complex.cpp:11:22:11:23 | this [post update] [a_] | provenance | | | complex.cpp:12:17:12:17 | b | complex.cpp:12:22:12:27 | ... = ... | provenance | | -| complex.cpp:12:22:12:23 | this [post update] [b_] | complex.cpp:12:8:12:11 | this [Return] [b_] | provenance | | +| complex.cpp:12:22:12:23 | this [post update] [b_] | complex.cpp:12:8:12:11 | this [Reverse] [b_] | provenance | | | complex.cpp:12:22:12:27 | ... = ... | complex.cpp:12:22:12:23 | this [post update] [b_] | provenance | | | complex.cpp:40:17:40:17 | b [inner, f, a_] | complex.cpp:42:8:42:8 | b [inner, f, a_] | provenance | | | complex.cpp:40:17:40:17 | b [inner, f, b_] | complex.cpp:43:8:43:8 | b [inner, f, b_] | provenance | | @@ -618,9 +591,9 @@ edges | constructors.cpp:19:22:19:23 | this [b_] | constructors.cpp:19:22:19:23 | b_ | provenance | | | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:28:23:28 | a | provenance | | | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:35:23:35 | b | provenance | | -| constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | constructors.cpp:23:5:23:7 | this [Return] [a_] | provenance | | +| constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | constructors.cpp:23:5:23:7 | this [Reverse] [a_] | provenance | | | constructors.cpp:23:28:23:28 | a | constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | provenance | | -| constructors.cpp:23:32:23:36 | constructor init of field b_ [post-this] [b_] | constructors.cpp:23:5:23:7 | this [Return] [b_] | provenance | | +| constructors.cpp:23:32:23:36 | constructor init of field b_ [post-this] [b_] | constructors.cpp:23:5:23:7 | this [Reverse] [b_] | provenance | | | constructors.cpp:23:35:23:35 | b | constructors.cpp:23:32:23:36 | constructor init of field b_ [post-this] [b_] | provenance | | | constructors.cpp:26:15:26:15 | f [a_] | constructors.cpp:28:10:28:10 | f [a_] | provenance | | | constructors.cpp:26:15:26:15 | f [b_] | constructors.cpp:29:10:29:10 | f [b_] | provenance | | @@ -645,18 +618,18 @@ edges | constructors.cpp:46:9:46:9 | h [a_] | constructors.cpp:26:15:26:15 | f [a_] | provenance | | | constructors.cpp:46:9:46:9 | h [b_] | constructors.cpp:26:15:26:15 | f [b_] | provenance | | | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:30:9:44 | ... = ... | provenance | | -| qualifiers.cpp:9:30:9:33 | this [post update] [a] | qualifiers.cpp:9:10:9:13 | this [Return] [a] | provenance | | +| qualifiers.cpp:9:30:9:33 | this [post update] [a] | qualifiers.cpp:9:10:9:13 | this [Reverse] [a] | provenance | | | qualifiers.cpp:9:30:9:44 | ... = ... | qualifiers.cpp:9:30:9:33 | this [post update] [a] | provenance | | | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:49:12:64 | ... = ... | provenance | | -| qualifiers.cpp:12:49:12:53 | inner [post update] [a] | qualifiers.cpp:12:27:12:31 | inner [Return] [a] | provenance | | +| qualifiers.cpp:12:49:12:53 | inner [post update] [a] | qualifiers.cpp:12:27:12:31 | inner [Reverse] [a] | provenance | | | qualifiers.cpp:12:49:12:53 | inner [post update] [a] | qualifiers.cpp:12:27:12:31 | inner [a] | provenance | | | qualifiers.cpp:12:49:12:64 | ... = ... | qualifiers.cpp:12:49:12:53 | inner [post update] [a] | provenance | | | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:51:13:65 | ... = ... | provenance | | -| qualifiers.cpp:13:51:13:55 | inner [post update] [a] | qualifiers.cpp:13:29:13:33 | inner [Return] [a] | provenance | | +| qualifiers.cpp:13:51:13:55 | inner [post update] [a] | qualifiers.cpp:13:29:13:33 | inner [Reverse] [a] | provenance | | | qualifiers.cpp:13:51:13:55 | inner [post update] [a] | qualifiers.cpp:13:29:13:33 | inner [a] | provenance | | | qualifiers.cpp:13:51:13:65 | ... = ... | qualifiers.cpp:13:51:13:55 | inner [post update] [a] | provenance | | | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | this [Reverse] [inner, a] | provenance | | -| qualifiers.cpp:18:32:18:36 | this [Reverse] [inner, a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | provenance | | +| qualifiers.cpp:18:32:18:36 | this [Reverse] [inner, a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | provenance | | | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | qualifiers.cpp:23:10:23:14 | outer [inner, a] | provenance | | | qualifiers.cpp:22:5:22:38 | ... = ... | qualifiers.cpp:22:11:22:18 | call to getInner [post update] [a] | provenance | | | qualifiers.cpp:22:11:22:18 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | provenance | | @@ -732,10 +705,10 @@ edges | simple.cpp:19:9:19:9 | this [b_] | simple.cpp:19:22:19:23 | this [b_] | provenance | | | simple.cpp:19:22:19:23 | this [b_] | simple.cpp:19:22:19:23 | b_ | provenance | | | simple.cpp:20:19:20:19 | a | simple.cpp:20:24:20:29 | ... = ... | provenance | | -| simple.cpp:20:24:20:25 | this [post update] [a_] | simple.cpp:20:10:20:13 | this [Return] [a_] | provenance | | +| simple.cpp:20:24:20:25 | this [post update] [a_] | simple.cpp:20:10:20:13 | this [Reverse] [a_] | provenance | | | simple.cpp:20:24:20:29 | ... = ... | simple.cpp:20:24:20:25 | this [post update] [a_] | provenance | | | simple.cpp:21:19:21:19 | b | simple.cpp:21:24:21:29 | ... = ... | provenance | | -| simple.cpp:21:24:21:25 | this [post update] [b_] | simple.cpp:21:10:21:13 | this [Return] [b_] | provenance | | +| simple.cpp:21:24:21:25 | this [post update] [b_] | simple.cpp:21:10:21:13 | this [Reverse] [b_] | provenance | | | simple.cpp:21:24:21:29 | ... = ... | simple.cpp:21:24:21:25 | this [post update] [b_] | provenance | | | simple.cpp:26:15:26:15 | f [a_] | simple.cpp:28:10:28:10 | f [a_] | provenance | | | simple.cpp:26:15:26:15 | f [b_] | simple.cpp:29:10:29:10 | f [b_] | provenance | | @@ -786,6 +759,7 @@ edges | struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | provenance | | | struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | provenance | | | struct_init.c:15:8:15:9 | ab [a] | struct_init.c:15:12:15:12 | a | provenance | | +| struct_init.c:15:8:15:9 | ab [post update] [a] | struct_init.c:14:24:14:25 | ab [Reverse] [a] | provenance | | | struct_init.c:15:8:15:9 | ab [post update] [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | | struct_init.c:15:12:15:12 | a | realistic.cpp:41:17:41:17 | o | provenance | | | struct_init.c:15:12:15:12 | a | struct_init.c:15:12:15:12 | ref arg a | provenance | | @@ -833,11 +807,11 @@ edges | struct_init.c:46:10:46:14 | outer [pointerAB, a] | struct_init.c:46:16:46:24 | pointerAB [a] | provenance | | | struct_init.c:46:16:46:24 | pointerAB [a] | struct_init.c:14:24:14:25 | ab [a] | provenance | | nodes -| A.cpp:23:5:23:5 | this [Return] [c] | semmle.label | this [Return] [c] | +| A.cpp:23:5:23:5 | this [Reverse] [c] | semmle.label | this [Reverse] [c] | | A.cpp:23:10:23:10 | c | semmle.label | c | | A.cpp:25:7:25:10 | this [post update] [c] | semmle.label | this [post update] [c] | | A.cpp:25:7:25:17 | ... = ... | semmle.label | ... = ... | -| A.cpp:27:10:27:12 | this [Return] [c] | semmle.label | this [Return] [c] | +| A.cpp:27:10:27:12 | this [Reverse] [c] | semmle.label | this [Reverse] [c] | | A.cpp:27:17:27:17 | c | semmle.label | c | | A.cpp:27:22:27:25 | this [post update] [c] | semmle.label | this [post update] [c] | | A.cpp:27:22:27:32 | ... = ... | semmle.label | ... = ... | @@ -865,44 +839,22 @@ nodes | A.cpp:57:11:57:24 | new [c] | semmle.label | new [c] | | A.cpp:57:17:57:23 | new | semmle.label | new | | A.cpp:57:28:57:30 | call to get | semmle.label | call to get | -| A.cpp:64:10:64:15 | call to setOnB [Reverse] [c] | semmle.label | call to setOnB [Reverse] [c] | | A.cpp:64:10:64:15 | call to setOnB [c] | semmle.label | call to setOnB [c] | -| A.cpp:64:17:64:18 | ref arg b1 [c] | semmle.label | ref arg b1 [c] | | A.cpp:64:21:64:28 | new | semmle.label | new | -| A.cpp:65:10:65:11 | b1 [c] | semmle.label | b1 [c] | -| A.cpp:65:14:65:14 | c | semmle.label | c | | A.cpp:66:10:66:11 | b2 [c] | semmle.label | b2 [c] | -| A.cpp:66:10:66:11 | b2 [post update] [c] | semmle.label | b2 [post update] [c] | -| A.cpp:66:14:66:14 | c | semmle.label | c | | A.cpp:66:14:66:14 | c | semmle.label | c | -| A.cpp:66:14:66:14 | ref arg c | semmle.label | ref arg c | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | semmle.label | call to setOnBWrap [Reverse] [c] | | A.cpp:73:10:73:19 | call to setOnBWrap [c] | semmle.label | call to setOnBWrap [c] | -| A.cpp:73:21:73:22 | ref arg b1 [c] | semmle.label | ref arg b1 [c] | | A.cpp:73:25:73:32 | new | semmle.label | new | -| A.cpp:74:10:74:11 | b1 [c] | semmle.label | b1 [c] | -| A.cpp:74:14:74:14 | c | semmle.label | c | | A.cpp:75:10:75:11 | b2 [c] | semmle.label | b2 [c] | -| A.cpp:75:10:75:11 | b2 [post update] [c] | semmle.label | b2 [post update] [c] | | A.cpp:75:14:75:14 | c | semmle.label | c | -| A.cpp:75:14:75:14 | c | semmle.label | c | -| A.cpp:75:14:75:14 | ref arg c | semmle.label | ref arg c | -| A.cpp:78:20:78:21 | b1 [Return] [c] | semmle.label | b1 [Return] [c] | -| A.cpp:78:20:78:21 | b1 [c] | semmle.label | b1 [c] | | A.cpp:78:27:78:27 | c | semmle.label | c | -| A.cpp:81:10:81:15 | call to setOnB [Reverse] [c] | semmle.label | call to setOnB [Reverse] [c] | | A.cpp:81:10:81:15 | call to setOnB [c] | semmle.label | call to setOnB [c] | -| A.cpp:81:17:81:18 | ref arg b1 [c] | semmle.label | ref arg b1 [c] | | A.cpp:81:21:81:21 | c | semmle.label | c | -| A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | semmle.label | ... ? ... : ... [Reverse] [c] | -| A.cpp:82:12:82:24 | ... ? ... : ... [c] | semmle.label | ... ? ... : ... [c] | | A.cpp:82:12:82:24 | ... ? ... : ... [c] | semmle.label | ... ? ... : ... [c] | -| A.cpp:85:19:85:20 | b1 [Return] [c] | semmle.label | b1 [Return] [c] | | A.cpp:85:26:85:26 | c | semmle.label | c | | A.cpp:90:7:90:8 | ref arg b2 [c] | semmle.label | ref arg b2 [c] | | A.cpp:90:15:90:15 | c | semmle.label | c | | A.cpp:91:14:91:15 | b2 [c] | semmle.label | b2 [c] | -| A.cpp:93:12:93:13 | b1 [Reverse] [c] | semmle.label | b1 [Reverse] [c] | | A.cpp:98:12:98:18 | new | semmle.label | new | | A.cpp:100:5:100:6 | c1 [post update] [a] | semmle.label | c1 [post update] [a] | | A.cpp:100:5:100:13 | ... = ... | semmle.label | ... = ... | @@ -912,18 +864,18 @@ nodes | A.cpp:107:16:107:16 | a | semmle.label | a | | A.cpp:120:12:120:13 | c1 [a] | semmle.label | c1 [a] | | A.cpp:120:16:120:16 | a | semmle.label | a | -| A.cpp:124:14:124:14 | b [Return] [c] | semmle.label | b [Return] [c] | +| A.cpp:124:14:124:14 | b [Reverse] [c] | semmle.label | b [Reverse] [c] | | A.cpp:124:14:124:14 | b [c] | semmle.label | b [c] | | A.cpp:126:5:126:5 | ref arg b [c] | semmle.label | ref arg b [c] | | A.cpp:126:12:126:18 | new | semmle.label | new | | A.cpp:131:8:131:8 | ref arg b [c] | semmle.label | ref arg b [c] | | A.cpp:132:10:132:10 | b [c] | semmle.label | b [c] | | A.cpp:132:13:132:13 | c | semmle.label | c | -| A.cpp:140:5:140:5 | this [Return] [b, c] | semmle.label | this [Return] [b, c] | -| A.cpp:140:5:140:5 | this [Return] [b] | semmle.label | this [Return] [b] | -| A.cpp:140:5:140:5 | this [Return] [b] | semmle.label | this [Return] [b] | +| A.cpp:140:5:140:5 | this [Reverse] [b, c] | semmle.label | this [Reverse] [b, c] | +| A.cpp:140:5:140:5 | this [Reverse] [b] | semmle.label | this [Reverse] [b] | +| A.cpp:140:5:140:5 | this [Reverse] [b] | semmle.label | this [Reverse] [b] | | A.cpp:140:13:140:13 | b | semmle.label | b | -| A.cpp:140:13:140:13 | b [Return] [c] | semmle.label | b [Return] [c] | +| A.cpp:140:13:140:13 | b [Reverse] [c] | semmle.label | b [Reverse] [c] | | A.cpp:140:13:140:13 | b [c] | semmle.label | b [c] | | A.cpp:142:7:142:7 | b [post update] [c] | semmle.label | b [post update] [c] | | A.cpp:142:7:142:20 | ... = ... | semmle.label | ... = ... | @@ -977,9 +929,9 @@ nodes | A.cpp:173:26:173:26 | o | semmle.label | o | | A.cpp:173:26:173:26 | o [c] | semmle.label | o [c] | | A.cpp:173:26:173:26 | o [c] | semmle.label | o [c] | -| A.cpp:181:5:181:10 | this [Return] [head] | semmle.label | this [Return] [head] | -| A.cpp:181:5:181:10 | this [Return] [next, head] | semmle.label | this [Return] [next, head] | -| A.cpp:181:5:181:10 | this [Return] [next, next, head] | semmle.label | this [Return] [next, next, head] | +| A.cpp:181:5:181:10 | this [Reverse] [head] | semmle.label | this [Reverse] [head] | +| A.cpp:181:5:181:10 | this [Reverse] [next, head] | semmle.label | this [Reverse] [next, head] | +| A.cpp:181:5:181:10 | this [Reverse] [next, next, head] | semmle.label | this [Reverse] [next, next, head] | | A.cpp:181:15:181:21 | newHead | semmle.label | newHead | | A.cpp:181:32:181:35 | next [head] | semmle.label | next [head] | | A.cpp:181:32:181:35 | next [next, head] | semmle.label | next [next, head] | @@ -1005,16 +957,16 @@ nodes | B.cpp:19:10:19:11 | b2 [box1, elem2] | semmle.label | b2 [box1, elem2] | | B.cpp:19:14:19:17 | box1 [elem2] | semmle.label | box1 [elem2] | | B.cpp:19:20:19:24 | elem2 | semmle.label | elem2 | -| B.cpp:33:5:33:8 | this [Return] [elem1] | semmle.label | this [Return] [elem1] | -| B.cpp:33:5:33:8 | this [Return] [elem2] | semmle.label | this [Return] [elem2] | +| B.cpp:33:5:33:8 | this [Reverse] [elem1] | semmle.label | this [Reverse] [elem1] | +| B.cpp:33:5:33:8 | this [Reverse] [elem2] | semmle.label | this [Reverse] [elem2] | | B.cpp:33:16:33:17 | e1 | semmle.label | e1 | | B.cpp:33:26:33:27 | e2 | semmle.label | e2 | | B.cpp:35:7:35:10 | this [post update] [elem1] | semmle.label | this [post update] [elem1] | | B.cpp:35:7:35:22 | ... = ... | semmle.label | ... = ... | | B.cpp:36:7:36:10 | this [post update] [elem2] | semmle.label | this [post update] [elem2] | | B.cpp:36:7:36:22 | ... = ... | semmle.label | ... = ... | -| B.cpp:44:5:44:8 | this [Return] [box1, elem1] | semmle.label | this [Return] [box1, elem1] | -| B.cpp:44:5:44:8 | this [Return] [box1, elem2] | semmle.label | this [Return] [box1, elem2] | +| B.cpp:44:5:44:8 | this [Reverse] [box1, elem1] | semmle.label | this [Reverse] [box1, elem1] | +| B.cpp:44:5:44:8 | this [Reverse] [box1, elem2] | semmle.label | this [Reverse] [box1, elem2] | | B.cpp:44:16:44:17 | b1 [elem1] | semmle.label | b1 [elem1] | | B.cpp:44:16:44:17 | b1 [elem2] | semmle.label | b1 [elem2] | | B.cpp:46:7:46:10 | this [post update] [box1, elem1] | semmle.label | this [post update] [box1, elem1] | @@ -1025,8 +977,8 @@ nodes | C.cpp:18:12:18:18 | call to C [s3] | semmle.label | call to C [s3] | | C.cpp:19:5:19:5 | c [s1] | semmle.label | c [s1] | | C.cpp:19:5:19:5 | c [s3] | semmle.label | c [s3] | -| C.cpp:22:3:22:3 | this [Return] [s1] | semmle.label | this [Return] [s1] | -| C.cpp:22:3:22:3 | this [Return] [s3] | semmle.label | this [Return] [s3] | +| C.cpp:22:3:22:3 | this [Reverse] [s1] | semmle.label | this [Reverse] [s1] | +| C.cpp:22:3:22:3 | this [Reverse] [s3] | semmle.label | this [Reverse] [s3] | | C.cpp:22:9:22:22 | constructor init of field s1 [post-this] [s1] | semmle.label | constructor init of field s1 [post-this] [s1] | | C.cpp:22:12:22:21 | new | semmle.label | new | | C.cpp:24:5:24:8 | this [post update] [s3] | semmle.label | this [post update] [s3] | @@ -1041,11 +993,11 @@ nodes | D.cpp:10:11:10:17 | this [elem] | semmle.label | this [elem] | | D.cpp:10:30:10:33 | elem | semmle.label | elem | | D.cpp:10:30:10:33 | this [elem] | semmle.label | this [elem] | -| D.cpp:11:10:11:16 | this [Return] [elem] | semmle.label | this [Return] [elem] | +| D.cpp:11:10:11:16 | this [Reverse] [elem] | semmle.label | this [Reverse] [elem] | | D.cpp:11:24:11:24 | e | semmle.label | e | | D.cpp:11:29:11:32 | this [post update] [elem] | semmle.label | this [post update] [elem] | | D.cpp:11:29:11:36 | ... = ... | semmle.label | ... = ... | -| D.cpp:17:11:17:17 | this [Return] [box, elem] | semmle.label | this [Return] [box, elem] | +| D.cpp:17:11:17:17 | this [Reverse] [box, elem] | semmle.label | this [Reverse] [box, elem] | | D.cpp:17:11:17:17 | this [box, elem] | semmle.label | this [box, elem] | | D.cpp:17:30:17:32 | box [Reverse] [elem] | semmle.label | box [Reverse] [elem] | | D.cpp:17:30:17:32 | box [elem] | semmle.label | box [elem] | @@ -1103,12 +1055,12 @@ nodes | E.cpp:32:13:32:18 | buffer | semmle.label | buffer | | E.cpp:33:18:33:19 | & ... [data, buffer] | semmle.label | & ... [data, buffer] | | E.cpp:33:19:33:19 | p [data, buffer] | semmle.label | p [data, buffer] | -| aliasing.cpp:8:23:8:23 | s [Return] [m1] | semmle.label | s [Return] [m1] | +| aliasing.cpp:8:23:8:23 | s [Reverse] [m1] | semmle.label | s [Reverse] [m1] | | aliasing.cpp:8:23:8:23 | s [m1] | semmle.label | s [m1] | | aliasing.cpp:9:3:9:3 | s [post update] [m1] | semmle.label | s [post update] [m1] | | aliasing.cpp:9:3:9:22 | ... = ... | semmle.label | ... = ... | | aliasing.cpp:9:11:9:20 | call to user_input | semmle.label | call to user_input | -| aliasing.cpp:12:25:12:25 | s [Return] [m1] | semmle.label | s [Return] [m1] | +| aliasing.cpp:12:25:12:25 | s [Reverse] [m1] | semmle.label | s [Reverse] [m1] | | aliasing.cpp:12:25:12:25 | s [m1] | semmle.label | s [m1] | | aliasing.cpp:13:3:13:3 | s [post update] [m1] | semmle.label | s [post update] [m1] | | aliasing.cpp:13:3:13:21 | ... = ... | semmle.label | ... = ... | @@ -1132,7 +1084,7 @@ nodes | aliasing.cpp:93:10:93:10 | s [m1] | semmle.label | s [m1] | | aliasing.cpp:93:12:93:13 | m1 | semmle.label | m1 | | aliasing.cpp:105:23:105:24 | pa | semmle.label | pa | -| aliasing.cpp:105:23:105:24 | pa [Return] | semmle.label | pa [Return] | +| aliasing.cpp:105:23:105:24 | pa [Reverse] | semmle.label | pa [Reverse] | | aliasing.cpp:106:9:106:18 | call to user_input | semmle.label | call to user_input | | aliasing.cpp:158:15:158:15 | s [post update] [data] | semmle.label | s [post update] [data] | | aliasing.cpp:158:17:158:20 | ref arg data | semmle.label | ref arg data | @@ -1217,20 +1169,20 @@ nodes | arrays.cpp:44:10:44:17 | indirect [arr, data] | semmle.label | indirect [arr, data] | | arrays.cpp:44:20:44:22 | arr [data] | semmle.label | arr [data] | | arrays.cpp:44:27:44:30 | data | semmle.label | data | -| by_reference.cpp:11:39:11:39 | s [Return] [a] | semmle.label | s [Return] [a] | +| by_reference.cpp:11:39:11:39 | s [Reverse] [a] | semmle.label | s [Reverse] [a] | | by_reference.cpp:11:39:11:39 | s [a] | semmle.label | s [a] | | by_reference.cpp:11:48:11:52 | value | semmle.label | value | | by_reference.cpp:12:5:12:5 | s [post update] [a] | semmle.label | s [post update] [a] | | by_reference.cpp:12:5:12:16 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:15:8:15:18 | this [Return] [a] | semmle.label | this [Return] [a] | +| by_reference.cpp:15:8:15:18 | this [Reverse] [a] | semmle.label | this [Reverse] [a] | | by_reference.cpp:15:26:15:30 | value | semmle.label | value | | by_reference.cpp:16:5:16:8 | this [post update] [a] | semmle.label | this [post update] [a] | | by_reference.cpp:16:5:16:19 | ... = ... | semmle.label | ... = ... | -| by_reference.cpp:19:8:19:20 | this [Return] [a] | semmle.label | this [Return] [a] | +| by_reference.cpp:19:8:19:20 | this [Reverse] [a] | semmle.label | this [Reverse] [a] | | by_reference.cpp:19:28:19:32 | value | semmle.label | value | | by_reference.cpp:20:5:20:8 | ref arg this [a] | semmle.label | ref arg this [a] | | by_reference.cpp:20:23:20:27 | value | semmle.label | value | -| by_reference.cpp:23:8:23:26 | this [Return] [a] | semmle.label | this [Return] [a] | +| by_reference.cpp:23:8:23:26 | this [Reverse] [a] | semmle.label | this [Reverse] [a] | | by_reference.cpp:23:34:23:38 | value | semmle.label | value | | by_reference.cpp:24:19:24:22 | ref arg this [a] | semmle.label | ref arg this [a] | | by_reference.cpp:24:25:24:29 | value | semmle.label | value | @@ -1263,18 +1215,18 @@ nodes | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | semmle.label | call to nonMemberGetA | | by_reference.cpp:69:22:69:23 | & ... [a] | semmle.label | & ... [a] | | by_reference.cpp:69:23:69:23 | s [a] | semmle.label | s [a] | -| by_reference.cpp:83:31:83:35 | inner [Return] [a] | semmle.label | inner [Return] [a] | +| by_reference.cpp:83:31:83:35 | inner [Reverse] [a] | semmle.label | inner [Reverse] [a] | | by_reference.cpp:83:31:83:35 | inner [a] | semmle.label | inner [a] | | by_reference.cpp:84:3:84:7 | inner [post update] [a] | semmle.label | inner [post update] [a] | | by_reference.cpp:84:3:84:25 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:84:14:84:23 | call to user_input | semmle.label | call to user_input | -| by_reference.cpp:87:31:87:35 | inner [Return] [a] | semmle.label | inner [Return] [a] | +| by_reference.cpp:87:31:87:35 | inner [Reverse] [a] | semmle.label | inner [Reverse] [a] | | by_reference.cpp:87:31:87:35 | inner [a] | semmle.label | inner [a] | | by_reference.cpp:88:3:88:7 | inner [post update] [a] | semmle.label | inner [post update] [a] | | by_reference.cpp:88:3:88:24 | ... = ... | semmle.label | ... = ... | | by_reference.cpp:88:13:88:22 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:91:25:91:26 | pa | semmle.label | pa | -| by_reference.cpp:91:25:91:26 | pa [Return] | semmle.label | pa [Return] | +| by_reference.cpp:91:25:91:26 | pa [Reverse] | semmle.label | pa [Reverse] | | by_reference.cpp:92:9:92:18 | call to user_input | semmle.label | call to user_input | | by_reference.cpp:95:25:95:26 | pa | semmle.label | pa | | by_reference.cpp:96:8:96:17 | call to user_input | semmle.label | call to user_input | @@ -1391,11 +1343,11 @@ nodes | complex.cpp:10:7:10:7 | this [b_] | semmle.label | this [b_] | | complex.cpp:10:20:10:21 | b_ | semmle.label | b_ | | complex.cpp:10:20:10:21 | this [b_] | semmle.label | this [b_] | -| complex.cpp:11:8:11:11 | this [Return] [a_] | semmle.label | this [Return] [a_] | +| complex.cpp:11:8:11:11 | this [Reverse] [a_] | semmle.label | this [Reverse] [a_] | | complex.cpp:11:17:11:17 | a | semmle.label | a | | complex.cpp:11:22:11:23 | this [post update] [a_] | semmle.label | this [post update] [a_] | | complex.cpp:11:22:11:27 | ... = ... | semmle.label | ... = ... | -| complex.cpp:12:8:12:11 | this [Return] [b_] | semmle.label | this [Return] [b_] | +| complex.cpp:12:8:12:11 | this [Reverse] [b_] | semmle.label | this [Reverse] [b_] | | complex.cpp:12:17:12:17 | b | semmle.label | b | | complex.cpp:12:22:12:23 | this [post update] [b_] | semmle.label | this [post update] [b_] | | complex.cpp:12:22:12:27 | ... = ... | semmle.label | ... = ... | @@ -1461,8 +1413,8 @@ nodes | constructors.cpp:19:9:19:9 | this [b_] | semmle.label | this [b_] | | constructors.cpp:19:22:19:23 | b_ | semmle.label | b_ | | constructors.cpp:19:22:19:23 | this [b_] | semmle.label | this [b_] | -| constructors.cpp:23:5:23:7 | this [Return] [a_] | semmle.label | this [Return] [a_] | -| constructors.cpp:23:5:23:7 | this [Return] [b_] | semmle.label | this [Return] [b_] | +| constructors.cpp:23:5:23:7 | this [Reverse] [a_] | semmle.label | this [Reverse] [a_] | +| constructors.cpp:23:5:23:7 | this [Reverse] [b_] | semmle.label | this [Reverse] [b_] | | constructors.cpp:23:13:23:13 | a | semmle.label | a | | constructors.cpp:23:20:23:20 | b | semmle.label | b | | constructors.cpp:23:25:23:29 | constructor init of field a_ [post-this] [a_] | semmle.label | constructor init of field a_ [post-this] [a_] | @@ -1487,21 +1439,21 @@ nodes | constructors.cpp:43:9:43:9 | g [b_] | semmle.label | g [b_] | | constructors.cpp:46:9:46:9 | h [a_] | semmle.label | h [a_] | | constructors.cpp:46:9:46:9 | h [b_] | semmle.label | h [b_] | -| qualifiers.cpp:9:10:9:13 | this [Return] [a] | semmle.label | this [Return] [a] | +| qualifiers.cpp:9:10:9:13 | this [Reverse] [a] | semmle.label | this [Reverse] [a] | | qualifiers.cpp:9:21:9:25 | value | semmle.label | value | | qualifiers.cpp:9:30:9:33 | this [post update] [a] | semmle.label | this [post update] [a] | | qualifiers.cpp:9:30:9:44 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:12:27:12:31 | inner [Return] [a] | semmle.label | inner [Return] [a] | +| qualifiers.cpp:12:27:12:31 | inner [Reverse] [a] | semmle.label | inner [Reverse] [a] | | qualifiers.cpp:12:27:12:31 | inner [a] | semmle.label | inner [a] | | qualifiers.cpp:12:40:12:44 | value | semmle.label | value | | qualifiers.cpp:12:49:12:53 | inner [post update] [a] | semmle.label | inner [post update] [a] | | qualifiers.cpp:12:49:12:64 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:13:29:13:33 | inner [Return] [a] | semmle.label | inner [Return] [a] | +| qualifiers.cpp:13:29:13:33 | inner [Reverse] [a] | semmle.label | inner [Reverse] [a] | | qualifiers.cpp:13:29:13:33 | inner [a] | semmle.label | inner [a] | | qualifiers.cpp:13:42:13:46 | value | semmle.label | value | | qualifiers.cpp:13:51:13:55 | inner [post update] [a] | semmle.label | inner [post update] [a] | | qualifiers.cpp:13:51:13:65 | ... = ... | semmle.label | ... = ... | -| qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | semmle.label | this [Return] [inner, a] | +| qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | semmle.label | this [Reverse] [inner, a] | | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | semmle.label | inner [Reverse] [a] | | qualifiers.cpp:18:32:18:36 | this [Reverse] [inner, a] | semmle.label | this [Reverse] [inner, a] | | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | semmle.label | ref arg outer [inner, a] | @@ -1577,11 +1529,11 @@ nodes | simple.cpp:19:9:19:9 | this [b_] | semmle.label | this [b_] | | simple.cpp:19:22:19:23 | b_ | semmle.label | b_ | | simple.cpp:19:22:19:23 | this [b_] | semmle.label | this [b_] | -| simple.cpp:20:10:20:13 | this [Return] [a_] | semmle.label | this [Return] [a_] | +| simple.cpp:20:10:20:13 | this [Reverse] [a_] | semmle.label | this [Reverse] [a_] | | simple.cpp:20:19:20:19 | a | semmle.label | a | | simple.cpp:20:24:20:25 | this [post update] [a_] | semmle.label | this [post update] [a_] | | simple.cpp:20:24:20:29 | ... = ... | semmle.label | ... = ... | -| simple.cpp:21:10:21:13 | this [Return] [b_] | semmle.label | this [Return] [b_] | +| simple.cpp:21:10:21:13 | this [Reverse] [b_] | semmle.label | this [Reverse] [b_] | | simple.cpp:21:19:21:19 | b | semmle.label | b | | simple.cpp:21:24:21:25 | this [post update] [b_] | semmle.label | this [post update] [b_] | | simple.cpp:21:24:21:29 | ... = ... | semmle.label | ... = ... | @@ -1628,6 +1580,7 @@ nodes | simple.cpp:118:11:118:20 | call to user_input | semmle.label | call to user_input | | simple.cpp:120:8:120:8 | a [i] | semmle.label | a [i] | | simple.cpp:120:10:120:10 | i | semmle.label | i | +| struct_init.c:14:24:14:25 | ab [Reverse] [a] | semmle.label | ab [Reverse] [a] | | struct_init.c:14:24:14:25 | ab [a] | semmle.label | ab [a] | | struct_init.c:14:24:14:25 | ab [a] | semmle.label | ab [a] | | struct_init.c:14:24:14:25 | ab [a] | semmle.label | ab [a] | @@ -1674,89 +1627,83 @@ nodes | struct_init.c:46:10:46:14 | outer [pointerAB, a] | semmle.label | outer [pointerAB, a] | | struct_init.c:46:16:46:24 | pointerAB [a] | semmle.label | pointerAB [a] | subpaths -| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | this [Return] [c] | A.cpp:31:14:31:21 | call to B [c] | +| A.cpp:31:20:31:20 | c | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | this [Reverse] [c] | A.cpp:31:14:31:21 | call to B [c] | | A.cpp:48:20:48:20 | c | A.cpp:29:23:29:23 | c | A.cpp:31:14:31:21 | new [c] | A.cpp:48:12:48:18 | call to make [c] | -| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Return] [c] | A.cpp:55:5:55:5 | ref arg b [c] | +| A.cpp:55:12:55:19 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Reverse] [c] | A.cpp:55:5:55:5 | ref arg b [c] | | A.cpp:56:10:56:10 | b [c] | A.cpp:28:8:28:10 | this [c] | A.cpp:28:29:28:29 | c | A.cpp:56:13:56:15 | call to get | | A.cpp:57:11:57:24 | new [c] | A.cpp:28:8:28:10 | this [c] | A.cpp:28:29:28:29 | c | A.cpp:57:28:57:30 | call to get | -| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | this [Return] [c] | A.cpp:57:11:57:24 | call to B [c] | -| A.cpp:64:10:64:15 | call to setOnB [Reverse] [c] | A.cpp:93:12:93:13 | b1 [Reverse] [c] | A.cpp:85:19:85:20 | b1 [Return] [c] | A.cpp:64:17:64:18 | ref arg b1 [c] | +| A.cpp:57:17:57:23 | new | A.cpp:23:10:23:10 | c | A.cpp:23:5:23:5 | this [Reverse] [c] | A.cpp:57:11:57:24 | call to B [c] | | A.cpp:64:21:64:28 | new | A.cpp:85:26:85:26 | c | A.cpp:91:14:91:15 | b2 [c] | A.cpp:64:10:64:15 | call to setOnB [c] | -| A.cpp:66:14:66:14 | c | A.cpp:173:26:173:26 | o | A.cpp:173:26:173:26 | o | A.cpp:66:14:66:14 | ref arg c | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | A.cpp:78:20:78:21 | b1 [Return] [c] | A.cpp:73:21:73:22 | ref arg b1 [c] | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | A.cpp:78:20:78:21 | b1 [c] | A.cpp:73:21:73:22 | ref arg b1 [c] | -| A.cpp:73:10:73:19 | call to setOnBWrap [Reverse] [c] | A.cpp:82:12:82:24 | ... ? ... : ... [Reverse] [c] | A.cpp:82:12:82:24 | ... ? ... : ... [c] | A.cpp:73:10:73:19 | call to setOnBWrap [c] | | A.cpp:73:25:73:32 | new | A.cpp:78:27:78:27 | c | A.cpp:82:12:82:24 | ... ? ... : ... [c] | A.cpp:73:10:73:19 | call to setOnBWrap [c] | -| A.cpp:75:14:75:14 | c | A.cpp:173:26:173:26 | o | A.cpp:173:26:173:26 | o | A.cpp:75:14:75:14 | ref arg c | -| A.cpp:81:10:81:15 | call to setOnB [Reverse] [c] | A.cpp:93:12:93:13 | b1 [Reverse] [c] | A.cpp:85:19:85:20 | b1 [Return] [c] | A.cpp:81:17:81:18 | ref arg b1 [c] | | A.cpp:81:21:81:21 | c | A.cpp:85:26:85:26 | c | A.cpp:91:14:91:15 | b2 [c] | A.cpp:81:10:81:15 | call to setOnB [c] | -| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Return] [c] | A.cpp:90:7:90:8 | ref arg b2 [c] | -| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Return] [c] | A.cpp:126:5:126:5 | ref arg b [c] | -| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:140:5:140:5 | this [Return] [b] | A.cpp:151:12:151:24 | call to D [b] | +| A.cpp:90:15:90:15 | c | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Reverse] [c] | A.cpp:90:7:90:8 | ref arg b2 [c] | +| A.cpp:126:12:126:18 | new | A.cpp:27:17:27:17 | c | A.cpp:27:10:27:12 | this [Reverse] [c] | A.cpp:126:5:126:5 | ref arg b [c] | +| A.cpp:151:18:151:18 | b | A.cpp:140:13:140:13 | b | A.cpp:140:5:140:5 | this [Reverse] [b] | A.cpp:151:12:151:24 | call to D [b] | | A.cpp:152:13:152:13 | b [c] | A.cpp:173:26:173:26 | o [c] | A.cpp:173:26:173:26 | o [c] | A.cpp:152:13:152:13 | ref arg b [c] | -| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | A.cpp:181:5:181:10 | this [Return] [head] | A.cpp:160:18:160:60 | call to MyList [head] | -| A.cpp:161:38:161:39 | l1 [head] | A.cpp:181:32:181:35 | next [head] | A.cpp:181:5:181:10 | this [Return] [next, head] | A.cpp:161:18:161:40 | call to MyList [next, head] | -| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:181:32:181:35 | next [next, head] | A.cpp:181:5:181:10 | this [Return] [next, next, head] | A.cpp:162:18:162:40 | call to MyList [next, next, head] | +| A.cpp:160:29:160:29 | b | A.cpp:181:15:181:21 | newHead | A.cpp:181:5:181:10 | this [Reverse] [head] | A.cpp:160:18:160:60 | call to MyList [head] | +| A.cpp:161:38:161:39 | l1 [head] | A.cpp:181:32:181:35 | next [head] | A.cpp:181:5:181:10 | this [Reverse] [next, head] | A.cpp:161:18:161:40 | call to MyList [next, head] | +| A.cpp:162:38:162:39 | l2 [next, head] | A.cpp:181:32:181:35 | next [next, head] | A.cpp:181:5:181:10 | this [Reverse] [next, next, head] | A.cpp:162:18:162:40 | call to MyList [next, next, head] | | A.cpp:165:26:165:29 | head | A.cpp:173:26:173:26 | o | A.cpp:173:26:173:26 | o | A.cpp:165:26:165:29 | ref arg head | -| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:33:5:33:8 | this [Return] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | -| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:44:16:44:17 | b1 [elem1] | B.cpp:44:5:44:8 | this [Return] [box1, elem1] | B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | -| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:33:5:33:8 | this [Return] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | -| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:44:16:44:17 | b1 [elem2] | B.cpp:44:5:44:8 | this [Return] [box1, elem2] | B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | +| B.cpp:7:25:7:25 | e | B.cpp:33:16:33:17 | e1 | B.cpp:33:5:33:8 | this [Reverse] [elem1] | B.cpp:7:16:7:35 | call to Box1 [elem1] | +| B.cpp:8:25:8:26 | b1 [elem1] | B.cpp:44:16:44:17 | b1 [elem1] | B.cpp:44:5:44:8 | this [Reverse] [box1, elem1] | B.cpp:8:16:8:27 | call to Box2 [box1, elem1] | +| B.cpp:16:37:16:37 | e | B.cpp:33:26:33:27 | e2 | B.cpp:33:5:33:8 | this [Reverse] [elem2] | B.cpp:16:16:16:38 | call to Box1 [elem2] | +| B.cpp:17:25:17:26 | b1 [elem2] | B.cpp:44:16:44:17 | b1 [elem2] | B.cpp:44:5:44:8 | this [Reverse] [box1, elem2] | B.cpp:17:16:17:27 | call to Box2 [box1, elem2] | | D.cpp:22:10:22:11 | b2 [box, elem] | D.cpp:17:11:17:17 | this [box, elem] | D.cpp:17:30:17:32 | box [elem] | D.cpp:22:14:22:20 | call to getBox1 [elem] | | D.cpp:22:14:22:20 | call to getBox1 [elem] | D.cpp:10:11:10:17 | this [elem] | D.cpp:10:30:10:33 | elem | D.cpp:22:25:22:31 | call to getElem | -| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | this [Return] [elem] | D.cpp:37:8:37:10 | ref arg box [elem] | -| D.cpp:44:8:44:14 | call to getBox1 [Reverse] [elem] | D.cpp:17:30:17:32 | box [Reverse] [elem] | D.cpp:17:11:17:17 | this [Return] [box, elem] | D.cpp:44:5:44:5 | ref arg b [box, elem] | -| D.cpp:51:8:51:14 | call to getBox1 [Reverse] [elem] | D.cpp:17:30:17:32 | box [Reverse] [elem] | D.cpp:17:11:17:17 | this [Return] [box, elem] | D.cpp:51:5:51:5 | ref arg b [box, elem] | -| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | this [Return] [elem] | D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | +| D.cpp:37:21:37:21 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | this [Reverse] [elem] | D.cpp:37:8:37:10 | ref arg box [elem] | +| D.cpp:44:8:44:14 | call to getBox1 [Reverse] [elem] | D.cpp:17:30:17:32 | box [Reverse] [elem] | D.cpp:17:11:17:17 | this [Reverse] [box, elem] | D.cpp:44:5:44:5 | ref arg b [box, elem] | +| D.cpp:51:8:51:14 | call to getBox1 [Reverse] [elem] | D.cpp:17:30:17:32 | box [Reverse] [elem] | D.cpp:17:11:17:17 | this [Reverse] [box, elem] | D.cpp:51:5:51:5 | ref arg b [box, elem] | +| D.cpp:51:27:51:27 | e | D.cpp:11:24:11:24 | e | D.cpp:11:10:11:16 | this [Reverse] [elem] | D.cpp:51:8:51:14 | ref arg call to getBox1 [elem] | | arrays.cpp:37:24:37:27 | data | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | arrays.cpp:37:24:37:27 | ref arg data | | arrays.cpp:43:27:43:30 | data | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | arrays.cpp:43:27:43:30 | ref arg data | -| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | this [Return] [a] | by_reference.cpp:20:5:20:8 | ref arg this [a] | -| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [Return] [a] | by_reference.cpp:24:19:24:22 | ref arg this [a] | +| by_reference.cpp:20:23:20:27 | value | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | this [Reverse] [a] | by_reference.cpp:20:5:20:8 | ref arg this [a] | +| by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [Reverse] [a] | by_reference.cpp:24:19:24:22 | ref arg this [a] | | by_reference.cpp:24:25:24:29 | value | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [a] | by_reference.cpp:24:19:24:22 | ref arg this [a] | | by_reference.cpp:40:12:40:15 | this [a] | by_reference.cpp:35:9:35:19 | this [a] | by_reference.cpp:36:18:36:18 | a | by_reference.cpp:40:18:40:28 | call to getDirectly | | by_reference.cpp:44:26:44:29 | this [a] | by_reference.cpp:31:46:31:46 | s [a] | by_reference.cpp:32:15:32:15 | a | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | -| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | this [Return] [a] | by_reference.cpp:50:3:50:3 | ref arg s [a] | +| by_reference.cpp:50:17:50:26 | call to user_input | by_reference.cpp:15:26:15:30 | value | by_reference.cpp:15:8:15:18 | this [Reverse] [a] | by_reference.cpp:50:3:50:3 | ref arg s [a] | | by_reference.cpp:51:8:51:8 | s [a] | by_reference.cpp:35:9:35:19 | this [a] | by_reference.cpp:36:18:36:18 | a | by_reference.cpp:51:10:51:20 | call to getDirectly | -| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:19:8:19:20 | this [Return] [a] | by_reference.cpp:56:3:56:3 | ref arg s [a] | +| by_reference.cpp:56:19:56:28 | call to user_input | by_reference.cpp:19:28:19:32 | value | by_reference.cpp:19:8:19:20 | this [Reverse] [a] | by_reference.cpp:56:3:56:3 | ref arg s [a] | | by_reference.cpp:57:8:57:8 | s [a] | by_reference.cpp:39:9:39:21 | this [a] | by_reference.cpp:40:18:40:28 | call to getDirectly | by_reference.cpp:57:10:57:22 | call to getIndirectly | -| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:23:8:23:26 | this [Return] [a] | by_reference.cpp:62:3:62:3 | ref arg s [a] | +| by_reference.cpp:62:25:62:34 | call to user_input | by_reference.cpp:23:34:23:38 | value | by_reference.cpp:23:8:23:26 | this [Reverse] [a] | by_reference.cpp:62:3:62:3 | ref arg s [a] | | by_reference.cpp:63:8:63:8 | s [a] | by_reference.cpp:43:9:43:27 | this [a] | by_reference.cpp:44:12:44:24 | call to nonMemberGetA | by_reference.cpp:63:10:63:28 | call to getThroughNonMember | -| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [Return] [a] | by_reference.cpp:68:17:68:18 | ref arg & ... [a] | +| by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [Reverse] [a] | by_reference.cpp:68:17:68:18 | ref arg & ... [a] | | by_reference.cpp:68:21:68:30 | call to user_input | by_reference.cpp:11:48:11:52 | value | by_reference.cpp:11:39:11:39 | s [a] | by_reference.cpp:68:17:68:18 | ref arg & ... [a] | | by_reference.cpp:69:22:69:23 | & ... [a] | by_reference.cpp:31:46:31:46 | s [a] | by_reference.cpp:32:15:32:15 | a | by_reference.cpp:69:8:69:20 | call to nonMemberGetA | | complex.cpp:42:16:42:16 | f [a_] | complex.cpp:9:7:9:7 | this [a_] | complex.cpp:9:20:9:21 | a_ | complex.cpp:42:18:42:18 | call to a | | complex.cpp:43:16:43:16 | f [b_] | complex.cpp:10:7:10:7 | this [b_] | complex.cpp:10:20:10:21 | b_ | complex.cpp:43:18:43:18 | call to b | -| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | this [Return] [a_] | complex.cpp:53:12:53:12 | ref arg f [a_] | -| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | this [Return] [b_] | complex.cpp:54:12:54:12 | ref arg f [b_] | -| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | this [Return] [a_] | complex.cpp:55:12:55:12 | ref arg f [a_] | -| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | this [Return] [b_] | complex.cpp:56:12:56:12 | ref arg f [b_] | +| complex.cpp:53:19:53:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | this [Reverse] [a_] | complex.cpp:53:12:53:12 | ref arg f [a_] | +| complex.cpp:54:19:54:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | this [Reverse] [b_] | complex.cpp:54:12:54:12 | ref arg f [b_] | +| complex.cpp:55:19:55:28 | call to user_input | complex.cpp:11:17:11:17 | a | complex.cpp:11:8:11:11 | this [Reverse] [a_] | complex.cpp:55:12:55:12 | ref arg f [a_] | +| complex.cpp:56:19:56:28 | call to user_input | complex.cpp:12:17:12:17 | b | complex.cpp:12:8:12:11 | this [Reverse] [b_] | complex.cpp:56:12:56:12 | ref arg f [b_] | | constructors.cpp:28:10:28:10 | f [a_] | constructors.cpp:18:9:18:9 | this [a_] | constructors.cpp:18:22:18:23 | a_ | constructors.cpp:28:12:28:12 | call to a | | constructors.cpp:29:10:29:10 | f [b_] | constructors.cpp:19:9:19:9 | this [b_] | constructors.cpp:19:22:19:23 | b_ | constructors.cpp:29:12:29:12 | call to b | -| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this [Return] [a_] | constructors.cpp:34:11:34:26 | call to Foo [a_] | -| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this [Return] [b_] | constructors.cpp:35:11:35:26 | call to Foo [b_] | -| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this [Return] [a_] | constructors.cpp:36:11:36:37 | call to Foo [a_] | -| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this [Return] [b_] | constructors.cpp:36:11:36:37 | call to Foo [b_] | -| qualifiers.cpp:22:11:22:18 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | -| qualifiers.cpp:27:11:27:18 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | -| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:10:9:13 | this [Return] [a] | qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | -| qualifiers.cpp:32:23:32:30 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | -| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | inner [Return] [a] | qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | +| constructors.cpp:34:11:34:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this [Reverse] [a_] | constructors.cpp:34:11:34:26 | call to Foo [a_] | +| constructors.cpp:35:14:35:23 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this [Reverse] [b_] | constructors.cpp:35:11:35:26 | call to Foo [b_] | +| constructors.cpp:36:11:36:20 | call to user_input | constructors.cpp:23:13:23:13 | a | constructors.cpp:23:5:23:7 | this [Reverse] [a_] | constructors.cpp:36:11:36:37 | call to Foo [a_] | +| constructors.cpp:36:25:36:34 | call to user_input | constructors.cpp:23:20:23:20 | b | constructors.cpp:23:5:23:7 | this [Reverse] [b_] | constructors.cpp:36:11:36:37 | call to Foo [b_] | +| qualifiers.cpp:22:11:22:18 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:22:5:22:9 | ref arg outer [inner, a] | +| qualifiers.cpp:27:11:27:18 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:27:5:27:9 | ref arg outer [inner, a] | +| qualifiers.cpp:27:28:27:37 | call to user_input | qualifiers.cpp:9:21:9:25 | value | qualifiers.cpp:9:10:9:13 | this [Reverse] [a] | qualifiers.cpp:27:11:27:18 | ref arg call to getInner [a] | +| qualifiers.cpp:32:23:32:30 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:32:17:32:21 | ref arg outer [inner, a] | +| qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | inner [Reverse] [a] | qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | | qualifiers.cpp:32:35:32:44 | call to user_input | qualifiers.cpp:12:40:12:44 | value | qualifiers.cpp:12:27:12:31 | inner [a] | qualifiers.cpp:32:23:32:30 | ref arg call to getInner [a] | -| qualifiers.cpp:37:26:37:33 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | -| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | inner [Return] [a] | qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | +| qualifiers.cpp:37:26:37:33 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:37:20:37:24 | ref arg outer [inner, a] | +| qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | inner [Reverse] [a] | qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | | qualifiers.cpp:37:38:37:47 | call to user_input | qualifiers.cpp:13:42:13:46 | value | qualifiers.cpp:13:29:13:33 | inner [a] | qualifiers.cpp:37:19:37:35 | ref arg * ... [a] | -| qualifiers.cpp:42:13:42:20 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | -| qualifiers.cpp:47:15:47:22 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Return] [inner, a] | qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | +| qualifiers.cpp:42:13:42:20 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:42:7:42:11 | ref arg outer [inner, a] | +| qualifiers.cpp:47:15:47:22 | call to getInner [Reverse] [a] | qualifiers.cpp:18:32:18:36 | inner [Reverse] [a] | qualifiers.cpp:18:12:18:19 | this [Reverse] [inner, a] | qualifiers.cpp:47:6:47:11 | ref arg & ... [inner, a] | | realistic.cpp:61:47:61:55 | bufferLen | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | realistic.cpp:61:47:61:55 | ref arg bufferLen | | simple.cpp:28:10:28:10 | f [a_] | simple.cpp:18:9:18:9 | this [a_] | simple.cpp:18:22:18:23 | a_ | simple.cpp:28:12:28:12 | call to a | | simple.cpp:29:10:29:10 | f [b_] | simple.cpp:19:9:19:9 | this [b_] | simple.cpp:19:22:19:23 | b_ | simple.cpp:29:12:29:12 | call to b | -| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | this [Return] [a_] | simple.cpp:39:5:39:5 | ref arg f [a_] | -| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | this [Return] [b_] | simple.cpp:40:5:40:5 | ref arg g [b_] | -| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | this [Return] [a_] | simple.cpp:41:5:41:5 | ref arg h [a_] | -| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | this [Return] [b_] | simple.cpp:42:5:42:5 | ref arg h [b_] | +| simple.cpp:39:12:39:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | this [Reverse] [a_] | simple.cpp:39:5:39:5 | ref arg f [a_] | +| simple.cpp:40:12:40:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | this [Reverse] [b_] | simple.cpp:40:5:40:5 | ref arg g [b_] | +| simple.cpp:41:12:41:21 | call to user_input | simple.cpp:20:19:20:19 | a | simple.cpp:20:10:20:13 | this [Reverse] [a_] | simple.cpp:41:5:41:5 | ref arg h [a_] | +| simple.cpp:42:12:42:21 | call to user_input | simple.cpp:21:19:21:19 | b | simple.cpp:21:10:21:13 | this [Reverse] [b_] | simple.cpp:42:5:42:5 | ref arg h [b_] | | simple.cpp:84:14:84:20 | this [f2, f1] | simple.cpp:78:9:78:15 | this [f2, f1] | simple.cpp:79:19:79:20 | f1 | simple.cpp:84:14:84:20 | call to getf2f1 | | struct_init.c:15:12:15:12 | a | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | struct_init.c:15:12:15:12 | ref arg a | | struct_init.c:22:11:22:11 | a | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | struct_init.c:22:11:22:11 | ref arg a | +| struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | struct_init.c:14:24:14:25 | ab [Reverse] [a] | struct_init.c:24:10:24:12 | ref arg & ... [a] | | struct_init.c:24:10:24:12 | & ... [a] | struct_init.c:14:24:14:25 | ab [a] | struct_init.c:14:24:14:25 | ab [a] | struct_init.c:24:10:24:12 | ref arg & ... [a] | | struct_init.c:31:23:31:23 | a | realistic.cpp:41:17:41:17 | o | realistic.cpp:41:17:41:17 | o | struct_init.c:31:23:31:23 | ref arg a | #select @@ -1764,9 +1711,7 @@ subpaths | A.cpp:49:13:49:13 | c | A.cpp:47:12:47:18 | new | A.cpp:49:13:49:13 | c | c flows from $@ | A.cpp:47:12:47:18 | new | new | | A.cpp:56:13:56:15 | call to get | A.cpp:55:12:55:19 | new | A.cpp:56:13:56:15 | call to get | call to get flows from $@ | A.cpp:55:12:55:19 | new | new | | A.cpp:57:28:57:30 | call to get | A.cpp:57:17:57:23 | new | A.cpp:57:28:57:30 | call to get | call to get flows from $@ | A.cpp:57:17:57:23 | new | new | -| A.cpp:65:14:65:14 | c | A.cpp:64:21:64:28 | new | A.cpp:65:14:65:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | | A.cpp:66:14:66:14 | c | A.cpp:64:21:64:28 | new | A.cpp:66:14:66:14 | c | c flows from $@ | A.cpp:64:21:64:28 | new | new | -| A.cpp:74:14:74:14 | c | A.cpp:73:25:73:32 | new | A.cpp:74:14:74:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | | A.cpp:75:14:75:14 | c | A.cpp:73:25:73:32 | new | A.cpp:75:14:75:14 | c | c flows from $@ | A.cpp:73:25:73:32 | new | new | | A.cpp:107:16:107:16 | a | A.cpp:98:12:98:18 | new | A.cpp:107:16:107:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | | A.cpp:120:16:120:16 | a | A.cpp:98:12:98:18 | new | A.cpp:120:16:120:16 | a | a flows from $@ | A.cpp:98:12:98:18 | new | new | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected index 1ee5b1097b3a2..444be25651671 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/taint.expected @@ -3,31 +3,3 @@ WARNING: module 'DataFlow' has been deprecated and may be removed in future (tai WARNING: module 'DataFlow' has been deprecated and may be removed in future (taint.ql:61,22-30) WARNING: module 'DataFlow' has been deprecated and may be removed in future (taint.ql:68,25-33) WARNING: module 'TaintTracking' has been deprecated and may be removed in future (taint.ql:73,20-33) -| arrayassignment.cpp:66:12:66:31 | // $ ir MISSING: ast | Missing result: ir | -| arrayassignment.cpp:67:18:67:28 | // $ ast,ir | Missing result: ir | -| arrayassignment.cpp:110:19:110:38 | // $ ir MISSING: ast | Missing result: ir | -| vector.cpp:52:12:52:30 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:53:15:53:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:54:15:54:31 | // $ SPURIOUS: ir | Fixed spurious result: ir | -| vector.cpp:55:15:55:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:58:12:58:30 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:59:15:59:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:60:15:60:31 | // $ SPURIOUS: ir | Fixed spurious result: ir | -| vector.cpp:61:15:61:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:64:12:64:30 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:65:15:65:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:66:15:66:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:67:15:67:33 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:75:12:75:30 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:76:22:76:40 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:97:12:97:30 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:98:18:98:36 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:99:18:99:36 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:100:18:100:36 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:171:19:171:37 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:180:19:180:37 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:201:19:201:37 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:212:22:212:41 | // $ ir MISSING: ast | Missing result: ir | -| vector.cpp:290:12:290:18 | // $ ir | Missing result: ir | -| vector.cpp:291:19:291:37 | // $ ir MISSING:ast | Missing result: ir | -| vector.cpp:292:22:292:40 | // $ ir MISSING:ast | Missing result: ir | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected index 586aacd281960..c0589ba6bbcac 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.expected @@ -51,8 +51,8 @@ edges | test.cpp:187:18:187:25 | *filename | test.cpp:187:11:187:15 | strncat output argument | provenance | TaintFunction | | test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command | provenance | | | test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command | provenance | | -| test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command [Return] | provenance | | -| test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command [Return] | provenance | | +| test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command [Reverse] | provenance | | +| test.cpp:188:11:188:17 | strncat output argument | test.cpp:186:19:186:25 | *command [Reverse] | provenance | | | test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | provenance | Config | | test.cpp:188:20:188:24 | *flags | test.cpp:188:11:188:17 | strncat output argument | provenance | TaintFunction | | test.cpp:194:9:194:16 | fread output argument | test.cpp:196:26:196:33 | *filename | provenance | | @@ -127,8 +127,8 @@ nodes | test.cpp:183:32:183:38 | *command | semmle.label | *command | | test.cpp:186:19:186:25 | *command | semmle.label | *command | | test.cpp:186:19:186:25 | *command | semmle.label | *command | -| test.cpp:186:19:186:25 | *command [Return] | semmle.label | *command [Return] | -| test.cpp:186:19:186:25 | *command [Return] | semmle.label | *command [Return] | +| test.cpp:186:19:186:25 | *command [Reverse] | semmle.label | *command [Reverse] | +| test.cpp:186:19:186:25 | *command [Reverse] | semmle.label | *command [Reverse] | | test.cpp:186:47:186:54 | *filename | semmle.label | *filename | | test.cpp:187:11:187:15 | strncat output argument | semmle.label | strncat output argument | | test.cpp:187:11:187:15 | strncat output argument | semmle.label | strncat output argument | @@ -155,8 +155,8 @@ nodes subpaths | test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command | test.cpp:196:10:196:16 | concat output argument | | test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command | test.cpp:196:10:196:16 | concat output argument | -| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command [Return] | test.cpp:196:10:196:16 | concat output argument | -| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command [Return] | test.cpp:196:10:196:16 | concat output argument | +| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command [Reverse] | test.cpp:196:10:196:16 | concat output argument | +| test.cpp:196:26:196:33 | *filename | test.cpp:186:47:186:54 | *filename | test.cpp:186:19:186:25 | *command [Reverse] | test.cpp:196:10:196:16 | concat output argument | #select | test.cpp:23:12:23:19 | command1 | test.cpp:15:27:15:30 | **argv | test.cpp:23:12:23:19 | *command1 | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:15:27:15:30 | **argv | user input (a command-line argument) | test.cpp:22:13:22:20 | sprintf output argument | sprintf output argument | | test.cpp:51:10:51:16 | command | test.cpp:47:21:47:26 | *call to getenv | test.cpp:51:10:51:16 | *command | This argument to an OS command is derived from $@, dangerously concatenated into $@, and then passed to system(string). | test.cpp:47:21:47:26 | *call to getenv | user input (an environment variable) | test.cpp:50:11:50:17 | sprintf output argument | sprintf output argument | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected index b4f0c085ff406..0a6f92beb43bc 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/SAMATE/OverrunWriteProductFlow.expected @@ -53,9 +53,8 @@ edges | test.cpp:228:27:228:54 | call to malloc | test.cpp:228:27:228:54 | call to malloc | provenance | | | test.cpp:228:27:228:54 | call to malloc | test.cpp:232:10:232:15 | buffer | provenance | | | test.cpp:235:40:235:45 | buffer | test.cpp:236:5:236:26 | ... = ... | provenance | | -| test.cpp:236:5:236:9 | *p_str [Reverse] [string] | test.cpp:235:27:235:31 | *p_str [Return] [string] | provenance | | +| test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:235:27:235:31 | *p_str [Reverse] [string] | provenance | | | test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:235:27:235:31 | *p_str [string] | provenance | | -| test.cpp:236:5:236:9 | *p_str [post update] [string] | test.cpp:236:5:236:9 | *p_str [Reverse] [string] | provenance | | | test.cpp:236:5:236:26 | ... = ... | test.cpp:236:5:236:9 | *p_str [post update] [string] | provenance | | | test.cpp:241:20:241:38 | call to malloc | test.cpp:241:20:241:38 | call to malloc | provenance | | | test.cpp:241:20:241:38 | call to malloc | test.cpp:242:22:242:27 | buffer | provenance | | @@ -130,10 +129,9 @@ nodes | test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | | test.cpp:228:27:228:54 | call to malloc | semmle.label | call to malloc | | test.cpp:232:10:232:15 | buffer | semmle.label | buffer | -| test.cpp:235:27:235:31 | *p_str [Return] [string] | semmle.label | *p_str [Return] [string] | +| test.cpp:235:27:235:31 | *p_str [Reverse] [string] | semmle.label | *p_str [Reverse] [string] | | test.cpp:235:27:235:31 | *p_str [string] | semmle.label | *p_str [string] | | test.cpp:235:40:235:45 | buffer | semmle.label | buffer | -| test.cpp:236:5:236:9 | *p_str [Reverse] [string] | semmle.label | *p_str [Reverse] [string] | | test.cpp:236:5:236:9 | *p_str [post update] [string] | semmle.label | *p_str [post update] [string] | | test.cpp:236:5:236:26 | ... = ... | semmle.label | ... = ... | | test.cpp:241:20:241:38 | call to malloc | semmle.label | call to malloc | @@ -154,7 +152,7 @@ nodes | test.cpp:264:13:264:30 | call to malloc | semmle.label | call to malloc | | test.cpp:266:12:266:12 | p | semmle.label | p | subpaths -| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:235:27:235:31 | *p_str [Return] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | +| test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:235:27:235:31 | *p_str [Reverse] [string] | test.cpp:242:16:242:19 | set_string output argument [string] | | test.cpp:242:22:242:27 | buffer | test.cpp:235:40:235:45 | buffer | test.cpp:235:27:235:31 | *p_str [string] | test.cpp:242:16:242:19 | set_string output argument [string] | #select | test.cpp:42:5:42:11 | call to strncpy | test.cpp:18:19:18:24 | call to malloc | test.cpp:42:18:42:23 | string | This write may overflow $@ by 1 element. | test.cpp:42:18:42:23 | string | string | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected index 04e31aa01cd13..4b564a924395c 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-119/semmle/tests/OverflowDestination.expected @@ -5,7 +5,7 @@ edges | overflowdestination.cpp:27:2:27:15 | *... = ... | overflowdestination.cpp:30:17:30:20 | *arg1 | provenance | | | overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | *src | provenance | | | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src | provenance | | -| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src [Return] | provenance | DataFlowFunction | +| overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src [Reverse] | provenance | DataFlowFunction | | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:53:15:53:17 | *src | provenance | | | overflowdestination.cpp:57:52:57:54 | *src | overflowdestination.cpp:60:15:60:17 | *src | provenance | | | overflowdestination.cpp:60:15:60:17 | *src | overflowdestination.cpp:64:16:64:19 | *src2 | provenance | | @@ -26,7 +26,7 @@ nodes | overflowdestination.cpp:46:15:46:17 | *src | semmle.label | *src | | overflowdestination.cpp:50:52:50:54 | *src | semmle.label | *src | | overflowdestination.cpp:50:52:50:54 | *src | semmle.label | *src | -| overflowdestination.cpp:50:52:50:54 | *src [Return] | semmle.label | *src [Return] | +| overflowdestination.cpp:50:52:50:54 | *src [Reverse] | semmle.label | *src [Reverse] | | overflowdestination.cpp:53:15:53:17 | *src | semmle.label | *src | | overflowdestination.cpp:57:52:57:54 | *src | semmle.label | *src | | overflowdestination.cpp:60:15:60:17 | *src | semmle.label | *src | @@ -37,7 +37,7 @@ nodes | overflowdestination.cpp:76:30:76:32 | *src | semmle.label | *src | subpaths | overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | -| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src [Return] | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | +| overflowdestination.cpp:75:30:75:32 | *src | overflowdestination.cpp:50:52:50:54 | *src | overflowdestination.cpp:50:52:50:54 | *src [Reverse] | overflowdestination.cpp:75:30:75:32 | overflowdest_test2 output argument | #select | overflowdestination.cpp:30:2:30:8 | call to strncpy | main.cpp:6:27:6:30 | **argv | overflowdestination.cpp:30:17:30:20 | *arg1 | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | | overflowdestination.cpp:46:2:46:7 | call to memcpy | overflowdestination.cpp:43:8:43:10 | fgets output argument | overflowdestination.cpp:46:15:46:17 | *src | To avoid overflow, this operation should be bounded by destination-buffer size, not source-buffer size. | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected index 4ae072c6ce480..7b2a11332e96f 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-497/semmle/tests/ExposedSystemData.expected @@ -12,7 +12,7 @@ edges | tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:14:111:19 | *ptr | provenance | | | tests2.cpp:111:14:111:15 | *c1 [*ptr] | tests2.cpp:111:17:111:19 | *ptr | provenance | | | tests2.cpp:111:17:111:19 | *ptr | tests2.cpp:111:14:111:19 | *ptr | provenance | | -| tests2.cpp:120:5:120:21 | [summary param] *1 in zmq_msg_init_data | tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Return] | provenance | | +| tests2.cpp:120:5:120:21 | [summary param] *1 in zmq_msg_init_data | tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Reverse] | provenance | | | tests2.cpp:134:2:134:30 | *... = ... | tests2.cpp:138:23:138:34 | *message_data | provenance | | | tests2.cpp:134:2:134:30 | *... = ... | tests2.cpp:143:34:143:45 | *message_data | provenance | | | tests2.cpp:134:17:134:22 | *call to getenv | tests2.cpp:134:2:134:30 | *... = ... | provenance | | @@ -52,7 +52,7 @@ nodes | tests2.cpp:111:14:111:15 | *c1 [*ptr] | semmle.label | *c1 [*ptr] | | tests2.cpp:111:14:111:19 | *ptr | semmle.label | *ptr | | tests2.cpp:111:17:111:19 | *ptr | semmle.label | *ptr | -| tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Return] | semmle.label | [summary param] *0 in zmq_msg_init_data [Return] | +| tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Reverse] | semmle.label | [summary param] *0 in zmq_msg_init_data [Reverse] | | tests2.cpp:120:5:120:21 | [summary param] *1 in zmq_msg_init_data | semmle.label | [summary param] *1 in zmq_msg_init_data | | tests2.cpp:134:2:134:30 | *... = ... | semmle.label | *... = ... | | tests2.cpp:134:17:134:22 | *call to getenv | semmle.label | *call to getenv | @@ -74,7 +74,7 @@ nodes | tests_sysconf.cpp:36:21:36:27 | confstr output argument | semmle.label | confstr output argument | | tests_sysconf.cpp:39:19:39:25 | *pathbuf | semmle.label | *pathbuf | subpaths -| tests2.cpp:143:34:143:45 | *message_data | tests2.cpp:120:5:120:21 | [summary param] *1 in zmq_msg_init_data | tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Return] | tests2.cpp:143:24:143:31 | zmq_msg_init_data output argument | +| tests2.cpp:143:34:143:45 | *message_data | tests2.cpp:120:5:120:21 | [summary param] *1 in zmq_msg_init_data | tests2.cpp:120:5:120:21 | [summary param] *0 in zmq_msg_init_data [Reverse] | tests2.cpp:143:24:143:31 | zmq_msg_init_data output argument | #select | tests2.cpp:63:13:63:26 | *call to getenv | tests2.cpp:63:13:63:26 | *call to getenv | tests2.cpp:63:13:63:26 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:63:13:63:26 | *call to getenv | *call to getenv | | tests2.cpp:64:13:64:26 | *call to getenv | tests2.cpp:64:13:64:26 | *call to getenv | tests2.cpp:64:13:64:26 | *call to getenv | This operation exposes system data from $@. | tests2.cpp:64:13:64:26 | *call to getenv | *call to getenv | diff --git a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected index 18155300ff0fc..38b246f58540f 100644 --- a/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/collections/CollectionFlow.expected @@ -253,7 +253,7 @@ edges | CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | provenance | | | CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | CollectionFlow.cs:311:18:311:24 | access to property Key | provenance | | | CollectionFlow.cs:328:32:328:38 | element : A | CollectionFlow.cs:328:55:328:61 | access to parameter element : A | provenance | | -| CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:328:23:328:27 | array [Return] : A[] [element] : A | provenance | | +| CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | CollectionFlow.cs:328:23:328:27 | array [Reverse] : A[] [element] : A | provenance | | | CollectionFlow.cs:328:55:328:61 | access to parameter element : A | CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | provenance | | | CollectionFlow.cs:332:13:332:13 | access to local variable a : A | CollectionFlow.cs:334:23:334:23 | access to local variable a : A | provenance | | | CollectionFlow.cs:332:17:332:23 | object creation of type A : A | CollectionFlow.cs:332:13:332:13 | access to local variable a : A | provenance | | @@ -267,7 +267,7 @@ edges | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | provenance | | | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:337:14:337:23 | call to method First | provenance | | | CollectionFlow.cs:350:34:350:40 | element : A | CollectionFlow.cs:350:55:350:61 | access to parameter element : A | provenance | | -| CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:350:26:350:29 | list [Return] : List [element] : A | provenance | | +| CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | CollectionFlow.cs:350:26:350:29 | list [Reverse] : List [element] : A | provenance | | | CollectionFlow.cs:350:55:350:61 | access to parameter element : A | CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | provenance | MaD:3 | | CollectionFlow.cs:354:13:354:13 | access to local variable a : A | CollectionFlow.cs:356:23:356:23 | access to local variable a : A | provenance | | | CollectionFlow.cs:354:17:354:23 | object creation of type A : A | CollectionFlow.cs:354:13:354:13 | access to local variable a : A | provenance | | @@ -562,7 +562,7 @@ nodes | CollectionFlow.cs:309:21:309:23 | kvp : KeyValuePair [property Key] : A | semmle.label | kvp : KeyValuePair [property Key] : A | | CollectionFlow.cs:311:18:311:20 | access to parameter kvp : KeyValuePair [property Key] : A | semmle.label | access to parameter kvp : KeyValuePair [property Key] : A | | CollectionFlow.cs:311:18:311:24 | access to property Key | semmle.label | access to property Key | -| CollectionFlow.cs:328:23:328:27 | array [Return] : A[] [element] : A | semmle.label | array [Return] : A[] [element] : A | +| CollectionFlow.cs:328:23:328:27 | array [Reverse] : A[] [element] : A | semmle.label | array [Reverse] : A[] [element] : A | | CollectionFlow.cs:328:32:328:38 | element : A | semmle.label | element : A | | CollectionFlow.cs:328:44:328:48 | [post] access to parameter array : A[] [element] : A | semmle.label | [post] access to parameter array : A[] [element] : A | | CollectionFlow.cs:328:55:328:61 | access to parameter element : A | semmle.label | access to parameter element : A | @@ -575,7 +575,7 @@ nodes | CollectionFlow.cs:336:18:336:20 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | | CollectionFlow.cs:337:14:337:23 | call to method First | semmle.label | call to method First | | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | semmle.label | access to local variable as : A[] [element] : A | -| CollectionFlow.cs:350:26:350:29 | list [Return] : List [element] : A | semmle.label | list [Return] : List [element] : A | +| CollectionFlow.cs:350:26:350:29 | list [Reverse] : List [element] : A | semmle.label | list [Reverse] : List [element] : A | | CollectionFlow.cs:350:34:350:40 | element : A | semmle.label | element : A | | CollectionFlow.cs:350:46:350:49 | [post] access to parameter list : List [element] : A | semmle.label | [post] access to parameter list : List [element] : A | | CollectionFlow.cs:350:55:350:61 | access to parameter element : A | semmle.label | access to parameter element : A | @@ -684,9 +684,9 @@ subpaths | CollectionFlow.cs:222:27:222:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:81 | access to property Key : A | CollectionFlow.cs:222:14:222:31 | call to method DictFirstKey | | CollectionFlow.cs:240:28:240:31 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:58:32:61 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:32:67:32:83 | call to method First : A | CollectionFlow.cs:240:14:240:32 | call to method DictKeysFirst | | CollectionFlow.cs:241:27:241:30 | access to local variable dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:57:34:60 | dict : Dictionary [element, property Key] : A | CollectionFlow.cs:34:66:34:81 | access to property Key : A | CollectionFlow.cs:241:14:241:31 | call to method DictFirstKey | -| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:328:32:328:38 | element : A | CollectionFlow.cs:328:23:328:27 | array [Return] : A[] [element] : A | CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | +| CollectionFlow.cs:334:23:334:23 | access to local variable a : A | CollectionFlow.cs:328:32:328:38 | element : A | CollectionFlow.cs:328:23:328:27 | array [Reverse] : A[] [element] : A | CollectionFlow.cs:334:18:334:20 | [post] access to local variable as : A[] [element] : A | | CollectionFlow.cs:337:20:337:22 | access to local variable as : A[] [element] : A | CollectionFlow.cs:22:34:22:35 | ts : A[] [element] : A | CollectionFlow.cs:22:41:22:45 | access to array element : A | CollectionFlow.cs:337:14:337:23 | call to method First | -| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:350:34:350:40 | element : A | CollectionFlow.cs:350:26:350:29 | list [Return] : List [element] : A | CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | +| CollectionFlow.cs:356:23:356:23 | access to local variable a : A | CollectionFlow.cs:350:34:350:40 | element : A | CollectionFlow.cs:350:26:350:29 | list [Reverse] : List [element] : A | CollectionFlow.cs:356:17:356:20 | [post] access to local variable list : List [element] : A | | CollectionFlow.cs:359:24:359:27 | access to local variable list : List [element] : A | CollectionFlow.cs:24:43:24:46 | list : List [element] : A | CollectionFlow.cs:24:52:24:58 | access to indexer : A | CollectionFlow.cs:359:14:359:28 | call to method ListFirst | #select | CollectionFlow.cs:40:17:40:23 | object creation of type A : A | CollectionFlow.cs:40:17:40:23 | object creation of type A : A | CollectionFlow.cs:14:52:14:56 | access to array element | $@ | CollectionFlow.cs:14:52:14:56 | access to array element | access to array element | diff --git a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected index b2ab62d5b4bc2..f6852e58572ee 100644 --- a/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/constructors/ConstructorFlow.expected @@ -1,41 +1,37 @@ models edges -| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:5:24:5:25 | this access [Reverse] : C_no_ctor [field s1] : Object | provenance | | -| Constructors.cs:5:24:5:25 | this access [Reverse] : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | | +| Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:5:29:5:45 | call to method Source : Object | Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | Constructors.cs:10:13:10:13 | access to local variable c : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:10:13:10:13 | access to local variable c : C_no_ctor [field s1] : Object | Constructors.cs:13:21:13:22 | this : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:13:21:13:22 | this : C_no_ctor [field s1] : Object | Constructors.cs:15:18:15:19 | this access : C_no_ctor [field s1] : Object | provenance | | | Constructors.cs:15:18:15:19 | this access : C_no_ctor [field s1] : Object | Constructors.cs:15:18:15:19 | access to field s1 | provenance | | -| Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:21:24:21:25 | this access [Reverse] : C_with_ctor [field s1] : Object | provenance | | -| Constructors.cs:21:24:21:25 | this access [Reverse] : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | provenance | | +| Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | Constructors.cs:29:16:29:26 | this [Reverse] : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:21:29:21:45 | call to method Source : Object | Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | provenance | | -| Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | provenance | | +| Constructors.cs:29:16:29:26 | this [Reverse] : C_with_ctor [field s1] : Object | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | Constructors.cs:33:18:33:19 | this access : C_with_ctor [field s1] : Object | provenance | | | Constructors.cs:33:18:33:19 | this access : C_with_ctor [field s1] : Object | Constructors.cs:33:18:33:19 | access to field s1 | provenance | | | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:38:41:38 | access to parameter o : Object | provenance | | -| Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:41:32:41:34 | this access [Reverse] : C1 [field Obj] : Object | provenance | | -| Constructors.cs:41:32:41:34 | this access [Reverse] : C1 [field Obj] : Object | Constructors.cs:41:16:41:17 | this [Return] : C1 [field Obj] : Object | provenance | | +| Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | Constructors.cs:41:16:41:17 | this [Reverse] : C1 [field Obj] : Object | provenance | | | Constructors.cs:41:38:41:38 | access to parameter o : Object | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | provenance | | | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | provenance | | | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | provenance | | -| Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [parameter o22param] : Object | provenance | | -| Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:46:23:46:27 | this access [Reverse] : C2 [field Obj21] : Object | provenance | | +| Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:18:44:19 | this [Reverse] : C2 [parameter o22param] : Object | provenance | | +| Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | this [Reverse] : C2 [field Obj21] : Object | provenance | | | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | provenance | | -| Constructors.cs:46:23:46:27 | this access [Reverse] : C2 [field Obj21] : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | provenance | | | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | provenance | | | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | provenance | | | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this access : C2 [field Obj21] : Object | provenance | | | Constructors.cs:50:32:50:36 | this access : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | provenance | | | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:54:13:54:20 | access to parameter o22param : Object | provenance | | -| Constructors.cs:54:13:54:20 | access to parameter o22param : Object | Constructors.cs:52:21:52:26 | this [Return] : C2 [parameter o22param] : Object | provenance | | +| Constructors.cs:54:13:54:20 | access to parameter o22param : Object | Constructors.cs:52:21:52:26 | this [Reverse] : C2 [parameter o22param] : Object | provenance | | | Constructors.cs:57:54:57:55 | o2 : Object | Constructors.cs:59:13:59:14 | access to parameter o1 : Object | provenance | | | Constructors.cs:62:41:62:41 | o : Object | Constructors.cs:64:37:64:37 | access to parameter o : Object | provenance | | -| Constructors.cs:64:27:64:34 | access to parameter o22param : Object | Constructors.cs:62:21:62:32 | this [Return] : C2 [parameter o22param] : Object | provenance | | +| Constructors.cs:64:27:64:34 | access to parameter o22param : Object | Constructors.cs:62:21:62:32 | this [Reverse] : C2 [parameter o22param] : Object | provenance | | | Constructors.cs:64:37:64:37 | access to parameter o : Object | Constructors.cs:57:54:57:55 | o2 : Object | provenance | | | Constructors.cs:64:37:64:37 | access to parameter o : Object | Constructors.cs:64:27:64:34 | access to parameter o22param : Object | provenance | | | Constructors.cs:70:13:70:13 | access to local variable o : Object | Constructors.cs:71:25:71:25 | access to local variable o : Object | provenance | | @@ -77,7 +73,7 @@ edges | Constructors.cs:100:25:100:29 | access to local variable taint : Object | Constructors.cs:100:9:100:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | provenance | | | Constructors.cs:101:14:101:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | provenance | | | Constructors.cs:101:14:101:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:101:14:101:21 | access to property Obj22 | provenance | | -| Constructors.cs:104:28:104:35 | o31param : Object | Constructors.cs:104:18:104:19 | this [Return] : C3 [parameter o31param] : Object | provenance | | +| Constructors.cs:104:28:104:35 | o31param : Object | Constructors.cs:104:18:104:19 | this [Reverse] : C3 [parameter o31param] : Object | provenance | | | Constructors.cs:106:32:106:39 | this : C3 [parameter o31param] : Object | Constructors.cs:106:32:106:39 | access to parameter o31param : Object | provenance | | | Constructors.cs:111:13:111:15 | access to local variable o31 : Object | Constructors.cs:112:25:112:27 | access to local variable o31 : Object | provenance | | | Constructors.cs:111:19:111:35 | call to method Source : Object | Constructors.cs:111:13:111:15 | access to local variable o31 : Object | provenance | | @@ -89,12 +85,9 @@ edges | Constructors.cs:113:14:113:15 | access to local variable c3 : C3 [parameter o31param] : Object | Constructors.cs:113:14:113:21 | access to property Obj31 | provenance | | | Constructors.cs:121:26:121:28 | oc1 : Object | Constructors.cs:123:20:123:22 | access to parameter oc1 : Object | provenance | | | Constructors.cs:121:38:121:40 | oc2 : Object | Constructors.cs:124:20:124:22 | access to parameter oc2 : Object | provenance | | -| Constructors.cs:123:13:123:16 | [post] this access : C4 [property Obj1] : Object | Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj1] : Object | provenance | | -| Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj1] : Object | Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj1] : Object | provenance | | -| Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj2] : Object | Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj2] : Object | provenance | | +| Constructors.cs:123:13:123:16 | [post] this access : C4 [property Obj1] : Object | Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj1] : Object | provenance | | | Constructors.cs:123:20:123:22 | access to parameter oc1 : Object | Constructors.cs:123:13:123:16 | [post] this access : C4 [property Obj1] : Object | provenance | | -| Constructors.cs:124:13:124:16 | [post] this access : C4 [property Obj2] : Object | Constructors.cs:124:13:124:16 | this access [Reverse] : C4 [property Obj2] : Object | provenance | | -| Constructors.cs:124:13:124:16 | this access [Reverse] : C4 [property Obj2] : Object | Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj2] : Object | provenance | | +| Constructors.cs:124:13:124:16 | [post] this access : C4 [property Obj2] : Object | Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj2] : Object | provenance | | | Constructors.cs:124:20:124:22 | access to parameter oc2 : Object | Constructors.cs:124:13:124:16 | [post] this access : C4 [property Obj2] : Object | provenance | | | Constructors.cs:130:13:130:14 | access to local variable o1 : Object | Constructors.cs:132:25:132:26 | access to local variable o1 : Object | provenance | | | Constructors.cs:130:18:130:34 | call to method Source : Object | Constructors.cs:130:13:130:14 | access to local variable o1 : Object | provenance | | @@ -110,8 +103,8 @@ edges | Constructors.cs:132:29:132:30 | access to local variable o2 : Object | Constructors.cs:132:18:132:31 | object creation of type C4 : C4 [property Obj2] : Object | provenance | | | Constructors.cs:133:14:133:15 | access to local variable c4 : C4 [property Obj1] : Object | Constructors.cs:133:14:133:20 | access to property Obj1 | provenance | | | Constructors.cs:134:14:134:15 | access to local variable c4 : C4 [property Obj2] : Object | Constructors.cs:134:14:134:20 | access to property Obj2 | provenance | | -| Constructors.cs:137:29:137:32 | Obj1 : Object | Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj1] : Object | provenance | | -| Constructors.cs:137:42:137:45 | Obj2 : Object | Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj2] : Object | provenance | | +| Constructors.cs:137:29:137:32 | Obj1 : Object | Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj1] : Object | provenance | | +| Constructors.cs:137:42:137:45 | Obj2 : Object | Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj2] : Object | provenance | | | Constructors.cs:141:13:141:14 | access to local variable o1 : Object | Constructors.cs:143:25:143:26 | access to local variable o1 : Object | provenance | | | Constructors.cs:141:18:141:34 | call to method Source : Object | Constructors.cs:141:13:141:14 | access to local variable o1 : Object | provenance | | | Constructors.cs:142:13:142:14 | access to local variable o2 : Object | Constructors.cs:143:29:143:30 | access to local variable o2 : Object | provenance | | @@ -128,7 +121,6 @@ edges | Constructors.cs:145:14:145:15 | access to local variable r1 : R1 [property Obj2] : Object | Constructors.cs:145:14:145:20 | access to property Obj2 | provenance | | nodes | Constructors.cs:5:24:5:25 | [post] this access : C_no_ctor [field s1] : Object | semmle.label | [post] this access : C_no_ctor [field s1] : Object | -| Constructors.cs:5:24:5:25 | this access [Reverse] : C_no_ctor [field s1] : Object | semmle.label | this access [Reverse] : C_no_ctor [field s1] : Object | | Constructors.cs:5:29:5:45 | call to method Source : Object | semmle.label | call to method Source : Object | | Constructors.cs:9:23:9:23 | access to local variable c : C_no_ctor [field s1] : Object | semmle.label | access to local variable c : C_no_ctor [field s1] : Object | | Constructors.cs:9:27:9:41 | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | semmle.label | object creation of type C_no_ctor : C_no_ctor [field s1] : Object | @@ -137,39 +129,36 @@ nodes | Constructors.cs:15:18:15:19 | access to field s1 | semmle.label | access to field s1 | | Constructors.cs:15:18:15:19 | this access : C_no_ctor [field s1] : Object | semmle.label | this access : C_no_ctor [field s1] : Object | | Constructors.cs:21:24:21:25 | [post] this access : C_with_ctor [field s1] : Object | semmle.label | [post] this access : C_with_ctor [field s1] : Object | -| Constructors.cs:21:24:21:25 | this access [Reverse] : C_with_ctor [field s1] : Object | semmle.label | this access [Reverse] : C_with_ctor [field s1] : Object | | Constructors.cs:21:29:21:45 | call to method Source : Object | semmle.label | call to method Source : Object | | Constructors.cs:25:25:25:25 | access to local variable c : C_with_ctor [field s1] : Object | semmle.label | access to local variable c : C_with_ctor [field s1] : Object | | Constructors.cs:25:29:25:45 | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | semmle.label | object creation of type C_with_ctor : C_with_ctor [field s1] : Object | | Constructors.cs:26:13:26:13 | access to local variable c : C_with_ctor [field s1] : Object | semmle.label | access to local variable c : C_with_ctor [field s1] : Object | -| Constructors.cs:29:16:29:26 | this [Return] : C_with_ctor [field s1] : Object | semmle.label | this [Return] : C_with_ctor [field s1] : Object | +| Constructors.cs:29:16:29:26 | this [Reverse] : C_with_ctor [field s1] : Object | semmle.label | this [Reverse] : C_with_ctor [field s1] : Object | | Constructors.cs:31:21:31:22 | this : C_with_ctor [field s1] : Object | semmle.label | this : C_with_ctor [field s1] : Object | | Constructors.cs:33:18:33:19 | access to field s1 | semmle.label | access to field s1 | | Constructors.cs:33:18:33:19 | this access : C_with_ctor [field s1] : Object | semmle.label | this access : C_with_ctor [field s1] : Object | -| Constructors.cs:41:16:41:17 | this [Return] : C1 [field Obj] : Object | semmle.label | this [Return] : C1 [field Obj] : Object | +| Constructors.cs:41:16:41:17 | this [Reverse] : C1 [field Obj] : Object | semmle.label | this [Reverse] : C1 [field Obj] : Object | | Constructors.cs:41:26:41:26 | o : Object | semmle.label | o : Object | | Constructors.cs:41:32:41:34 | [post] this access : C1 [field Obj] : Object | semmle.label | [post] this access : C1 [field Obj] : Object | -| Constructors.cs:41:32:41:34 | this access [Reverse] : C1 [field Obj] : Object | semmle.label | this access [Reverse] : C1 [field Obj] : Object | | Constructors.cs:41:38:41:38 | access to parameter o : Object | semmle.label | access to parameter o : Object | -| Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | semmle.label | this [Return] : C2 [field Obj21] : Object | -| Constructors.cs:44:18:44:19 | this [Return] : C2 [parameter o22param] : Object | semmle.label | this [Return] : C2 [parameter o22param] : Object | +| Constructors.cs:44:18:44:19 | this [Reverse] : C2 [field Obj21] : Object | semmle.label | this [Reverse] : C2 [field Obj21] : Object | +| Constructors.cs:44:18:44:19 | this [Reverse] : C2 [parameter o22param] : Object | semmle.label | this [Reverse] : C2 [parameter o22param] : Object | | Constructors.cs:44:28:44:35 | o21param : Object | semmle.label | o21param : Object | | Constructors.cs:44:45:44:52 | o22param : Object | semmle.label | o22param : Object | | Constructors.cs:46:23:46:27 | [post] this access : C2 [field Obj21] : Object | semmle.label | [post] this access : C2 [field Obj21] : Object | | Constructors.cs:46:23:46:27 | this access : C2 [parameter o21param] : Object | semmle.label | this access : C2 [parameter o21param] : Object | -| Constructors.cs:46:23:46:27 | this access [Reverse] : C2 [field Obj21] : Object | semmle.label | this access [Reverse] : C2 [field Obj21] : Object | | Constructors.cs:46:31:46:38 | access to parameter o21param : Object | semmle.label | access to parameter o21param : Object | | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | semmle.label | access to parameter o22param : Object | | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | semmle.label | this : C2 [parameter o22param] : Object | | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | semmle.label | access to field Obj21 : Object | | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | semmle.label | this : C2 [field Obj21] : Object | | Constructors.cs:50:32:50:36 | this access : C2 [field Obj21] : Object | semmle.label | this access : C2 [field Obj21] : Object | -| Constructors.cs:52:21:52:26 | this [Return] : C2 [parameter o22param] : Object | semmle.label | this [Return] : C2 [parameter o22param] : Object | +| Constructors.cs:52:21:52:26 | this [Reverse] : C2 [parameter o22param] : Object | semmle.label | this [Reverse] : C2 [parameter o22param] : Object | | Constructors.cs:52:35:52:35 | o : Object | semmle.label | o : Object | | Constructors.cs:54:13:54:20 | access to parameter o22param : Object | semmle.label | access to parameter o22param : Object | | Constructors.cs:57:54:57:55 | o2 : Object | semmle.label | o2 : Object | | Constructors.cs:59:13:59:14 | access to parameter o1 : Object | semmle.label | access to parameter o1 : Object | -| Constructors.cs:62:21:62:32 | this [Return] : C2 [parameter o22param] : Object | semmle.label | this [Return] : C2 [parameter o22param] : Object | +| Constructors.cs:62:21:62:32 | this [Reverse] : C2 [parameter o22param] : Object | semmle.label | this [Reverse] : C2 [parameter o22param] : Object | | Constructors.cs:62:41:62:41 | o : Object | semmle.label | o : Object | | Constructors.cs:64:27:64:34 | access to parameter o22param : Object | semmle.label | access to parameter o22param : Object | | Constructors.cs:64:37:64:37 | access to parameter o : Object | semmle.label | access to parameter o : Object | @@ -208,7 +197,7 @@ nodes | Constructors.cs:100:25:100:29 | access to local variable taint : Object | semmle.label | access to local variable taint : Object | | Constructors.cs:101:14:101:15 | access to local variable c2 : C2 [parameter o22param] : Object | semmle.label | access to local variable c2 : C2 [parameter o22param] : Object | | Constructors.cs:101:14:101:21 | access to property Obj22 | semmle.label | access to property Obj22 | -| Constructors.cs:104:18:104:19 | this [Return] : C3 [parameter o31param] : Object | semmle.label | this [Return] : C3 [parameter o31param] : Object | +| Constructors.cs:104:18:104:19 | this [Reverse] : C3 [parameter o31param] : Object | semmle.label | this [Reverse] : C3 [parameter o31param] : Object | | Constructors.cs:104:28:104:35 | o31param : Object | semmle.label | o31param : Object | | Constructors.cs:106:32:106:39 | access to parameter o31param : Object | semmle.label | access to parameter o31param : Object | | Constructors.cs:106:32:106:39 | this : C3 [parameter o31param] : Object | semmle.label | this : C3 [parameter o31param] : Object | @@ -219,16 +208,13 @@ nodes | Constructors.cs:112:25:112:27 | access to local variable o31 : Object | semmle.label | access to local variable o31 : Object | | Constructors.cs:113:14:113:15 | access to local variable c3 : C3 [parameter o31param] : Object | semmle.label | access to local variable c3 : C3 [parameter o31param] : Object | | Constructors.cs:113:14:113:21 | access to property Obj31 | semmle.label | access to property Obj31 | -| Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj1] : Object | semmle.label | this [Return] : C4 [property Obj1] : Object | -| Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj2] : Object | semmle.label | this [Return] : C4 [property Obj2] : Object | +| Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj1] : Object | semmle.label | this [Reverse] : C4 [property Obj1] : Object | +| Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj2] : Object | semmle.label | this [Reverse] : C4 [property Obj2] : Object | | Constructors.cs:121:26:121:28 | oc1 : Object | semmle.label | oc1 : Object | | Constructors.cs:121:38:121:40 | oc2 : Object | semmle.label | oc2 : Object | | Constructors.cs:123:13:123:16 | [post] this access : C4 [property Obj1] : Object | semmle.label | [post] this access : C4 [property Obj1] : Object | -| Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj1] : Object | semmle.label | this access [Reverse] : C4 [property Obj1] : Object | -| Constructors.cs:123:13:123:16 | this access [Reverse] : C4 [property Obj2] : Object | semmle.label | this access [Reverse] : C4 [property Obj2] : Object | | Constructors.cs:123:20:123:22 | access to parameter oc1 : Object | semmle.label | access to parameter oc1 : Object | | Constructors.cs:124:13:124:16 | [post] this access : C4 [property Obj2] : Object | semmle.label | [post] this access : C4 [property Obj2] : Object | -| Constructors.cs:124:13:124:16 | this access [Reverse] : C4 [property Obj2] : Object | semmle.label | this access [Reverse] : C4 [property Obj2] : Object | | Constructors.cs:124:20:124:22 | access to parameter oc2 : Object | semmle.label | access to parameter oc2 : Object | | Constructors.cs:130:13:130:14 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | | Constructors.cs:130:18:130:34 | call to method Source : Object | semmle.label | call to method Source : Object | @@ -244,8 +230,8 @@ nodes | Constructors.cs:133:14:133:20 | access to property Obj1 | semmle.label | access to property Obj1 | | Constructors.cs:134:14:134:15 | access to local variable c4 : C4 [property Obj2] : Object | semmle.label | access to local variable c4 : C4 [property Obj2] : Object | | Constructors.cs:134:14:134:20 | access to property Obj2 | semmle.label | access to property Obj2 | -| Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj1] : Object | semmle.label | this [Return] : R1 [property Obj1] : Object | -| Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj2] : Object | semmle.label | this [Return] : R1 [property Obj2] : Object | +| Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj1] : Object | semmle.label | this [Reverse] : R1 [property Obj1] : Object | +| Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj2] : Object | semmle.label | this [Reverse] : R1 [property Obj2] : Object | | Constructors.cs:137:29:137:32 | Obj1 : Object | semmle.label | Obj1 : Object | | Constructors.cs:137:42:137:45 | Obj2 : Object | semmle.label | Obj2 : Object | | Constructors.cs:141:13:141:14 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | @@ -264,21 +250,21 @@ nodes | Constructors.cs:145:14:145:20 | access to property Obj2 | semmle.label | access to property Obj2 | subpaths | Constructors.cs:64:37:64:37 | access to parameter o : Object | Constructors.cs:57:54:57:55 | o2 : Object | Constructors.cs:59:13:59:14 | access to parameter o1 : Object | Constructors.cs:64:27:64:34 | access to parameter o22param : Object | -| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:16:41:17 | this [Return] : C1 [field Obj] : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | -| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [field Obj21] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | -| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:18:44:19 | this [Return] : C2 [parameter o22param] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | +| Constructors.cs:71:25:71:25 | access to local variable o : Object | Constructors.cs:41:26:41:26 | o : Object | Constructors.cs:41:16:41:17 | this [Reverse] : C1 [field Obj] : Object | Constructors.cs:71:18:71:26 | object creation of type C1 : C1 [field Obj] : Object | +| Constructors.cs:79:25:79:27 | access to local variable o21 : Object | Constructors.cs:44:28:44:35 | o21param : Object | Constructors.cs:44:18:44:19 | this [Reverse] : C2 [field Obj21] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [field Obj21] : Object | +| Constructors.cs:79:30:79:32 | access to local variable o22 : Object | Constructors.cs:44:45:44:52 | o22param : Object | Constructors.cs:44:18:44:19 | this [Reverse] : C2 [parameter o22param] : Object | Constructors.cs:79:18:79:33 | object creation of type C2 : C2 [parameter o22param] : Object | | Constructors.cs:81:14:81:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:81:14:81:21 | access to property Obj22 | | Constructors.cs:82:14:82:15 | access to local variable c2 : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | this : C2 [field Obj21] : Object | Constructors.cs:50:32:50:36 | access to field Obj21 : Object | Constructors.cs:82:14:82:21 | access to property Obj23 | -| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:52:21:52:26 | this [Return] : C2 [parameter o22param] : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | +| Constructors.cs:92:19:92:23 | access to local variable taint : Object | Constructors.cs:52:35:52:35 | o : Object | Constructors.cs:52:21:52:26 | this [Reverse] : C2 [parameter o22param] : Object | Constructors.cs:92:9:92:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | | Constructors.cs:93:14:93:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:93:14:93:21 | access to property Obj22 | -| Constructors.cs:100:25:100:29 | access to local variable taint : Object | Constructors.cs:62:41:62:41 | o : Object | Constructors.cs:62:21:62:32 | this [Return] : C2 [parameter o22param] : Object | Constructors.cs:100:9:100:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | +| Constructors.cs:100:25:100:29 | access to local variable taint : Object | Constructors.cs:62:41:62:41 | o : Object | Constructors.cs:62:21:62:32 | this [Reverse] : C2 [parameter o22param] : Object | Constructors.cs:100:9:100:10 | [post] access to local variable c2 : C2 [parameter o22param] : Object | | Constructors.cs:101:14:101:15 | access to local variable c2 : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | this : C2 [parameter o22param] : Object | Constructors.cs:48:32:48:39 | access to parameter o22param : Object | Constructors.cs:101:14:101:21 | access to property Obj22 | -| Constructors.cs:112:25:112:27 | access to local variable o31 : Object | Constructors.cs:104:28:104:35 | o31param : Object | Constructors.cs:104:18:104:19 | this [Return] : C3 [parameter o31param] : Object | Constructors.cs:112:18:112:28 | object creation of type C3 : C3 [parameter o31param] : Object | +| Constructors.cs:112:25:112:27 | access to local variable o31 : Object | Constructors.cs:104:28:104:35 | o31param : Object | Constructors.cs:104:18:104:19 | this [Reverse] : C3 [parameter o31param] : Object | Constructors.cs:112:18:112:28 | object creation of type C3 : C3 [parameter o31param] : Object | | Constructors.cs:113:14:113:15 | access to local variable c3 : C3 [parameter o31param] : Object | Constructors.cs:106:32:106:39 | this : C3 [parameter o31param] : Object | Constructors.cs:106:32:106:39 | access to parameter o31param : Object | Constructors.cs:113:14:113:21 | access to property Obj31 | -| Constructors.cs:132:25:132:26 | access to local variable o1 : Object | Constructors.cs:121:26:121:28 | oc1 : Object | Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj1] : Object | Constructors.cs:132:18:132:31 | object creation of type C4 : C4 [property Obj1] : Object | -| Constructors.cs:132:29:132:30 | access to local variable o2 : Object | Constructors.cs:121:38:121:40 | oc2 : Object | Constructors.cs:121:16:121:17 | this [Return] : C4 [property Obj2] : Object | Constructors.cs:132:18:132:31 | object creation of type C4 : C4 [property Obj2] : Object | -| Constructors.cs:143:25:143:26 | access to local variable o1 : Object | Constructors.cs:137:29:137:32 | Obj1 : Object | Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj1] : Object | Constructors.cs:143:18:143:31 | object creation of type R1 : R1 [property Obj1] : Object | -| Constructors.cs:143:29:143:30 | access to local variable o2 : Object | Constructors.cs:137:42:137:45 | Obj2 : Object | Constructors.cs:137:19:137:20 | this [Return] : R1 [property Obj2] : Object | Constructors.cs:143:18:143:31 | object creation of type R1 : R1 [property Obj2] : Object | +| Constructors.cs:132:25:132:26 | access to local variable o1 : Object | Constructors.cs:121:26:121:28 | oc1 : Object | Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj1] : Object | Constructors.cs:132:18:132:31 | object creation of type C4 : C4 [property Obj1] : Object | +| Constructors.cs:132:29:132:30 | access to local variable o2 : Object | Constructors.cs:121:38:121:40 | oc2 : Object | Constructors.cs:121:16:121:17 | this [Reverse] : C4 [property Obj2] : Object | Constructors.cs:132:18:132:31 | object creation of type C4 : C4 [property Obj2] : Object | +| Constructors.cs:143:25:143:26 | access to local variable o1 : Object | Constructors.cs:137:29:137:32 | Obj1 : Object | Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj1] : Object | Constructors.cs:143:18:143:31 | object creation of type R1 : R1 [property Obj1] : Object | +| Constructors.cs:143:29:143:30 | access to local variable o2 : Object | Constructors.cs:137:42:137:45 | Obj2 : Object | Constructors.cs:137:19:137:20 | this [Reverse] : R1 [property Obj2] : Object | Constructors.cs:143:18:143:31 | object creation of type R1 : R1 [property Obj2] : Object | testFailures #select | Constructors.cs:15:18:15:19 | access to field s1 | Constructors.cs:5:29:5:45 | call to method Source : Object | Constructors.cs:15:18:15:19 | access to field s1 | $@ | Constructors.cs:5:29:5:45 | call to method Source : Object | call to method Source : Object | diff --git a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected index b7a13e2984a94..1d0ce7c9fde0f 100644 --- a/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/fields/FieldFlow.expected @@ -84,10 +84,10 @@ edges | A.cs:60:22:60:22 | c : C1 [field a] : A | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | provenance | | | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | provenance | | | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | A.cs:64:18:64:26 | access to field a | provenance | | -| A.cs:81:22:81:22 | b [Return] : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | -| A.cs:81:22:81:22 | b [Return] : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | -| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:81:22:81:22 | b [Return] : B [field c] : C | provenance | | -| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:81:22:81:22 | b [Return] : B [field c] : C | provenance | | +| A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | provenance | | +| A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | provenance | | | A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | provenance | | | A.cs:83:15:83:26 | call to method Source : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | provenance | | | A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | provenance | | @@ -96,36 +96,28 @@ edges | A.cs:88:12:88:12 | [post] access to local variable b : B [field c] : C | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | provenance | | | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | provenance | | | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | A.cs:89:14:89:16 | access to field c | provenance | | -| A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | -| A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | +| A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | A.cs:105:17:105:29 | object creation of type D : D [field b, field c] : C | provenance | | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | provenance | | | A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | provenance | | | A.cs:95:20:95:20 | b : B | A.cs:97:13:97:13 | access to parameter b : B | provenance | | -| A.cs:95:20:95:20 | b [Return] : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | -| A.cs:95:20:95:20 | b [Return] : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | provenance | | -| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | provenance | | +| A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | A.cs:105:23:105:23 | [post] access to local variable b : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | provenance | | +| A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | provenance | | | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | provenance | | | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | A.cs:98:22:98:43 | ... ? ... : ... : B [field c] : C | provenance | | | A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | | A.cs:97:13:97:13 | access to parameter b : B | A.cs:98:22:98:43 | ... ? ... : ... : B | provenance | | -| A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | A.cs:95:20:95:20 | b [Return] : B [field c] : C | provenance | | -| A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | A.cs:95:20:95:20 | b [Return] : B [field c] : C | provenance | | | A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | provenance | | | A.cs:97:19:97:32 | call to method Source : C | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | provenance | | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | provenance | | +| A.cs:98:13:98:16 | [post] this access : D [field b] : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | provenance | | | A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | | A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | | A.cs:98:22:98:43 | ... ? ... : ... : B | A.cs:98:13:98:16 | [post] this access : D [field b] : B | provenance | | @@ -214,10 +206,8 @@ edges | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | A.cs:123:18:123:23 | access to field head | provenance | | | A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | provenance | | | A.cs:141:20:141:20 | c : C | A.cs:143:22:143:22 | access to parameter c : C | provenance | | -| A.cs:143:13:143:16 | [post] this access : B [field c] : C | A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | provenance | | -| A.cs:143:13:143:16 | [post] this access : B [field c] : C | A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | provenance | | -| A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | provenance | | -| A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | provenance | | +| A.cs:143:13:143:16 | [post] this access : B [field c] : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | provenance | | +| A.cs:143:13:143:16 | [post] this access : B [field c] : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | provenance | | | A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | provenance | | | A.cs:143:22:143:22 | access to parameter c : C | A.cs:143:13:143:16 | [post] this access : B [field c] : C | provenance | | | A.cs:145:27:145:27 | c : C | A.cs:145:41:145:41 | access to parameter c : C | provenance | | @@ -226,18 +216,12 @@ edges | A.cs:145:27:145:27 | c : C1 | A.cs:145:41:145:41 | access to parameter c : C1 | provenance | | | A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | provenance | | | A.cs:145:27:145:27 | c : C2 | A.cs:145:41:145:41 | access to parameter c : C2 | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | provenance | | -| A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | A.cs:145:21:145:23 | this [Return] : B [field c] : C | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | A.cs:145:21:145:23 | this [Return] : B [field c] : C | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | provenance | | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | provenance | | +| A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | provenance | | | A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | provenance | | | A.cs:145:41:145:41 | access to parameter c : C | A.cs:145:32:145:35 | [post] this access : B [field c] : C | provenance | | | A.cs:145:41:145:41 | access to parameter c : C1 | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | provenance | | @@ -264,24 +248,14 @@ edges | A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | provenance | | | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | provenance | | | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | provenance | | -| A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | provenance | | -| A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | provenance | | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | provenance | | +| A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | provenance | | +| A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | provenance | | | A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | provenance | | | A.cs:159:25:159:28 | access to parameter head : B | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | provenance | | -| A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | provenance | | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | provenance | | +| A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | provenance | | +| A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | provenance | | +| A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | provenance | | +| A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | provenance | | | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | provenance | | | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | provenance | | | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | provenance | | @@ -338,66 +312,38 @@ edges | B.cs:29:26:29:27 | e1 : Elem | B.cs:31:26:31:27 | access to parameter e1 : Elem | provenance | | | B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | provenance | | | B.cs:29:35:29:36 | e2 : Elem | B.cs:32:26:32:27 | access to parameter e2 : Elem | provenance | | -| B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | provenance | | -| B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | provenance | | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | provenance | | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | provenance | | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | provenance | | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | provenance | | +| B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | provenance | | +| B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | provenance | | | B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | provenance | | | B.cs:31:26:31:27 | access to parameter e1 : Elem | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | provenance | | -| B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | provenance | | -| B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | provenance | | -| B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | provenance | | -| B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | provenance | | +| B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | provenance | | +| B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | provenance | | | B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | provenance | | | B.cs:32:26:32:27 | access to parameter e2 : Elem | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | provenance | | | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | provenance | | | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | provenance | | | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | provenance | | | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | provenance | | -| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | provenance | | -| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | provenance | | -| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | provenance | | -| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | provenance | | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | provenance | | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | provenance | | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | provenance | | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | provenance | | +| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | provenance | | +| B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | provenance | | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | provenance | | -| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | -| C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | provenance | | +| C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | provenance | | | C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | | C.cs:3:23:3:37 | call to method Source : Elem | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | provenance | | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | provenance | | -| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | provenance | | -| C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | provenance | | +| C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | provenance | | | C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | | C.cs:4:32:4:46 | call to method Source : Elem | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | provenance | | | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | | C.cs:6:30:6:44 | call to method Source : Elem | C.cs:26:14:26:15 | access to field s4 | provenance | | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | provenance | | -| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | provenance | | -| C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | provenance | | -| C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | provenance | | +| C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | provenance | | | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | | C.cs:7:37:7:51 | call to method Source : Elem | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | provenance | | | C.cs:8:30:8:44 | call to method Source : Elem | C.cs:28:14:28:15 | access to property s6 | provenance | | @@ -426,18 +372,16 @@ edges | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | C.cs:21:17:21:18 | this : C [field s3] : Elem | provenance | | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | C.cs:21:17:21:18 | this : C [property s5] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | -| C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | -| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | provenance | | -| C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s1] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s2] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | C.cs:12:15:12:21 | object creation of type C : C [field s3] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | +| C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | C.cs:12:15:12:21 | object creation of type C : C [property s5] : Elem | provenance | | +| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | provenance | | +| C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | provenance | | | C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | provenance | | | C.cs:18:19:18:33 | call to method Source : Elem | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | provenance | | | C.cs:21:17:21:18 | this : C [field s1] : Elem | C.cs:23:14:23:15 | this access : C [field s1] : Elem | provenance | | @@ -462,10 +406,8 @@ edges | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | D.cs:8:22:8:42 | access to field trivialPropField : Object | provenance | | | D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | provenance | | | D.cs:9:9:9:11 | value : Object | D.cs:9:39:9:43 | access to parameter value : Object | provenance | | -| D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | provenance | | -| D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | provenance | | -| D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | provenance | | -| D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | provenance | | +| D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | provenance | | +| D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | provenance | | | D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | provenance | | | D.cs:9:39:9:43 | access to parameter value : Object | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | provenance | | | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | provenance | | @@ -474,8 +416,8 @@ edges | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | D.cs:14:22:14:42 | access to field trivialPropField : Object | provenance | | | D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | provenance | | | D.cs:15:9:15:11 | value : Object | D.cs:15:34:15:38 | access to parameter value : Object | provenance | | -| D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | provenance | | -| D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | provenance | | +| D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | provenance | | +| D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | provenance | | | D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | provenance | | | D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | provenance | | | D.cs:15:34:15:38 | access to parameter value : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | provenance | | @@ -582,12 +524,8 @@ edges | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | E.cs:24:14:24:20 | access to field Field | provenance | | | E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | provenance | | | E.cs:43:46:43:46 | o : Object | E.cs:46:22:46:22 | access to parameter o : Object | provenance | | -| E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | E.cs:43:36:43:36 | s [Return] : RefS [field RefField] : Object | provenance | | -| E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | E.cs:43:36:43:36 | s [Return] : RefS [field RefField] : Object | provenance | | -| E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | provenance | | -| E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | provenance | | -| E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | provenance | | -| E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | provenance | | +| E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | E.cs:43:36:43:36 | s [Reverse] : RefS [field RefField] : Object | provenance | | +| E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | E.cs:43:36:43:36 | s [Reverse] : RefS [field RefField] : Object | provenance | | | E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | provenance | | | E.cs:46:22:46:22 | access to parameter o : Object | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | provenance | | | E.cs:54:13:54:17 | access to local variable taint : Object | E.cs:55:29:55:33 | access to local variable taint : Object | provenance | | @@ -764,10 +702,8 @@ edges | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | provenance | | | G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | provenance | | | G.cs:64:34:64:34 | e : Elem | G.cs:64:46:64:46 | access to parameter e : Elem | provenance | | -| G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | provenance | | -| G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | provenance | | -| G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | provenance | | -| G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | provenance | | +| G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | provenance | | +| G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | provenance | | | G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | provenance | | | G.cs:64:46:64:46 | access to parameter e : Elem | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | provenance | | | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | provenance | | @@ -776,8 +712,8 @@ edges | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | this access [Reverse] : Box2 [field Box1, field Elem] : Elem | provenance | | | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | | G.cs:71:34:71:37 | this access : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | provenance | | -| G.cs:71:34:71:37 | this access [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | provenance | | -| G.cs:71:34:71:37 | this access [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:71:34:71:37 | this access [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | provenance | | +| G.cs:71:34:71:37 | this access [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | provenance | | | H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:16:22:16:22 | access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:16:9:16:11 | [post] access to local variable ret : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | provenance | | @@ -832,10 +768,8 @@ edges | H.cs:45:14:45:14 | access to local variable b : B [field FieldB] : Object | H.cs:45:14:45:21 | access to field FieldB | provenance | | | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | provenance | | -| H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | provenance | | -| H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | provenance | | -| H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | provenance | | -| H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | provenance | | +| H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | provenance | | +| H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | provenance | | | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | provenance | | | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | H.cs:55:21:55:28 | access to field FieldA : Object | provenance | | | H.cs:55:21:55:28 | access to field FieldA : Object | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | @@ -854,20 +788,18 @@ edges | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | H.cs:65:14:65:22 | access to field FieldB | provenance | | | H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | provenance | | | H.cs:77:30:77:30 | o : Object | H.cs:79:20:79:20 | access to parameter o : Object | provenance | | -| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | provenance | | -| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | provenance | | +| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | provenance | | +| H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | provenance | | | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | provenance | | -| H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | provenance | | -| H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | provenance | | | H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:79:20:79:20 | access to parameter o : Object | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | provenance | | | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | provenance | | | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | provenance | | -| H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | provenance | | -| H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | provenance | | +| H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | provenance | | +| H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | provenance | | | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | provenance | | | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | H.cs:89:14:89:14 | access to local variable a : A [field FieldA] : Object | provenance | | | H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | provenance | | @@ -946,8 +878,8 @@ edges | H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | provenance | | | H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | provenance | | | H.cs:147:25:147:38 | call to method Source : A | H.cs:147:17:147:39 | call to method Through : A | provenance | | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA] : B | provenance | | | H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | provenance | | | H.cs:153:32:153:32 | o : Object | H.cs:156:20:156:20 | access to parameter o : Object | provenance | | | H.cs:155:13:155:13 | access to local variable b : B | H.cs:156:9:156:9 | access to local variable b : B | provenance | | @@ -960,14 +892,10 @@ edges | H.cs:156:9:156:9 | access to local variable b : B | H.cs:157:20:157:20 | access to local variable b : B | provenance | | | H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | | H.cs:156:20:156:20 | access to parameter o : Object | H.cs:156:9:156:9 | [post] access to local variable b : B [field FieldB] : Object | provenance | | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | provenance | | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | provenance | | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | provenance | | -| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | provenance | | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | provenance | | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | provenance | | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | provenance | | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | provenance | | +| H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | provenance | | | H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | provenance | | | H.cs:157:20:157:20 | access to local variable b : B | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | provenance | | | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | provenance | | @@ -1002,14 +930,12 @@ edges | H.cs:165:20:165:27 | access to field FieldA : B [field FieldB] : Object | H.cs:165:17:165:27 | (...) ... : B [field FieldB] : Object | provenance | | | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | provenance | | | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | H.cs:167:14:167:21 | access to field FieldB | provenance | | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | provenance | | -| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | provenance | | -| I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | provenance | | -| I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | provenance | | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | I.cs:21:13:21:19 | object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | I.cs:26:13:26:37 | [pre-initializer] object creation of type I : I [field Field1] : Object | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | provenance | | +| I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | provenance | | | I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | provenance | | | I.cs:7:18:7:34 | call to method Source : Object | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | provenance | | | I.cs:13:13:13:13 | access to local variable o : Object | I.cs:15:20:15:20 | access to local variable o : Object | provenance | | @@ -1058,24 +984,18 @@ edges | I.cs:39:9:39:9 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | provenance | | | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | provenance | | | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | I.cs:40:14:40:21 | access to field Field1 | provenance | | -| J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | provenance | | -| J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | provenance | | -| J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | provenance | | -| J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | provenance | | +| J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | provenance | | +| J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | provenance | | +| J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | provenance | | | J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | provenance | | | J.cs:14:26:14:30 | field : Object | J.cs:14:66:14:70 | access to parameter field : Object | provenance | | | J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | provenance | | | J.cs:14:40:14:43 | prop : Object | J.cs:14:73:14:76 | access to parameter prop : Object | provenance | | -| J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | provenance | | -| J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | provenance | | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | provenance | | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | provenance | | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | provenance | | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | provenance | | -| J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | provenance | | -| J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | provenance | | -| J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | provenance | | -| J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | provenance | | +| J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | provenance | | +| J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | provenance | | +| J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [property Prop] : Object | provenance | | +| J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [property Prop] : Object | provenance | | | J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | provenance | | | J.cs:14:66:14:70 | access to parameter field : Object | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | provenance | | | J.cs:14:73:14:76 | access to parameter prop : Object | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | provenance | | @@ -1385,8 +1305,8 @@ nodes | A.cs:64:18:64:26 | access to field a | semmle.label | access to field a | | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | semmle.label | (...) ... : C1 [field a] : A | | A.cs:64:19:64:23 | (...) ... : C1 [field a] : A | semmle.label | (...) ... : C1 [field a] : A | -| A.cs:81:22:81:22 | b [Return] : B [field c] : C | semmle.label | b [Return] : B [field c] : C | -| A.cs:81:22:81:22 | b [Return] : B [field c] : C | semmle.label | b [Return] : B [field c] : C | +| A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | semmle.label | b [Reverse] : B [field c] : C | +| A.cs:81:22:81:22 | b [Reverse] : B [field c] : C | semmle.label | b [Reverse] : B [field c] : C | | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | semmle.label | [post] access to parameter b : B [field c] : C | | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | semmle.label | [post] access to parameter b : B [field c] : C | | A.cs:83:15:83:26 | call to method Source : C | semmle.label | call to method Source : C | @@ -1397,22 +1317,20 @@ nodes | A.cs:89:14:89:14 | access to local variable b : B [field c] : C | semmle.label | access to local variable b : B [field c] : C | | A.cs:89:14:89:16 | access to field c | semmle.label | access to field c | | A.cs:89:14:89:16 | access to field c | semmle.label | access to field c | -| A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | semmle.label | this [Return] : D [field b, field c] : C | -| A.cs:95:16:95:16 | this [Return] : D [field b, field c] : C | semmle.label | this [Return] : D [field b, field c] : C | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | semmle.label | this [Return] : D [field b] : B | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | semmle.label | this [Return] : D [field b] : B | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | semmle.label | this [Return] : D [field b] : B | -| A.cs:95:16:95:16 | this [Return] : D [field b] : B | semmle.label | this [Return] : D [field b] : B | +| A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | semmle.label | this [Reverse] : D [field b, field c] : C | +| A.cs:95:16:95:16 | this [Reverse] : D [field b, field c] : C | semmle.label | this [Reverse] : D [field b, field c] : C | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | semmle.label | this [Reverse] : D [field b] : B | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | semmle.label | this [Reverse] : D [field b] : B | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | semmle.label | this [Reverse] : D [field b] : B | +| A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | semmle.label | this [Reverse] : D [field b] : B | | A.cs:95:20:95:20 | b : B | semmle.label | b : B | | A.cs:95:20:95:20 | b : B | semmle.label | b : B | -| A.cs:95:20:95:20 | b [Return] : B [field c] : C | semmle.label | b [Return] : B [field c] : C | -| A.cs:95:20:95:20 | b [Return] : B [field c] : C | semmle.label | b [Return] : B [field c] : C | +| A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | semmle.label | b [Reverse] : B [field c] : C | +| A.cs:95:20:95:20 | b [Reverse] : B [field c] : C | semmle.label | b [Reverse] : B [field c] : C | | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | semmle.label | [post] access to parameter b : B [field c] : C | | A.cs:97:13:97:13 | [post] access to parameter b : B [field c] : C | semmle.label | [post] access to parameter b : B [field c] : C | | A.cs:97:13:97:13 | access to parameter b : B | semmle.label | access to parameter b : B | | A.cs:97:13:97:13 | access to parameter b : B | semmle.label | access to parameter b : B | -| A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | semmle.label | access to parameter b [Reverse] : B [field c] : C | -| A.cs:97:13:97:13 | access to parameter b [Reverse] : B [field c] : C | semmle.label | access to parameter b [Reverse] : B [field c] : C | | A.cs:97:19:97:32 | call to method Source : C | semmle.label | call to method Source : C | | A.cs:97:19:97:32 | call to method Source : C | semmle.label | call to method Source : C | | A.cs:98:13:98:16 | [post] this access : D [field b, field c] : C | semmle.label | [post] this access : D [field b, field c] : C | @@ -1421,12 +1339,6 @@ nodes | A.cs:98:13:98:16 | [post] this access : D [field b] : B | semmle.label | [post] this access : D [field b] : B | | A.cs:98:13:98:16 | [post] this access : D [field b] : B | semmle.label | [post] this access : D [field b] : B | | A.cs:98:13:98:16 | [post] this access : D [field b] : B | semmle.label | [post] this access : D [field b] : B | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | semmle.label | this access [Reverse] : D [field b, field c] : C | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b, field c] : C | semmle.label | this access [Reverse] : D [field b, field c] : C | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | semmle.label | this access [Reverse] : D [field b] : B | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | semmle.label | this access [Reverse] : D [field b] : B | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | semmle.label | this access [Reverse] : D [field b] : B | -| A.cs:98:13:98:16 | this access [Reverse] : D [field b] : B | semmle.label | this access [Reverse] : D [field b] : B | | A.cs:98:22:98:43 | ... ? ... : ... : B | semmle.label | ... ? ... : ... : B | | A.cs:98:22:98:43 | ... ? ... : ... : B | semmle.label | ... ? ... : ... : B | | A.cs:98:22:98:43 | ... ? ... : ... : B | semmle.label | ... ? ... : ... : B | @@ -1513,22 +1425,20 @@ nodes | A.cs:123:18:123:18 | access to local variable l : MyList [field head] : B | semmle.label | access to local variable l : MyList [field head] : B | | A.cs:123:18:123:23 | access to field head | semmle.label | access to field head | | A.cs:123:18:123:23 | access to field head | semmle.label | access to field head | -| A.cs:141:16:141:16 | this [Return] : B [field c] : C | semmle.label | this [Return] : B [field c] : C | -| A.cs:141:16:141:16 | this [Return] : B [field c] : C | semmle.label | this [Return] : B [field c] : C | +| A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | semmle.label | this [Reverse] : B [field c] : C | +| A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | semmle.label | this [Reverse] : B [field c] : C | | A.cs:141:20:141:20 | c : C | semmle.label | c : C | | A.cs:141:20:141:20 | c : C | semmle.label | c : C | | A.cs:143:13:143:16 | [post] this access : B [field c] : C | semmle.label | [post] this access : B [field c] : C | | A.cs:143:13:143:16 | [post] this access : B [field c] : C | semmle.label | [post] this access : B [field c] : C | -| A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | semmle.label | this access [Reverse] : B [field c] : C | -| A.cs:143:13:143:16 | this access [Reverse] : B [field c] : C | semmle.label | this access [Reverse] : B [field c] : C | | A.cs:143:22:143:22 | access to parameter c : C | semmle.label | access to parameter c : C | | A.cs:143:22:143:22 | access to parameter c : C | semmle.label | access to parameter c : C | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C | semmle.label | this [Return] : B [field c] : C | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C | semmle.label | this [Return] : B [field c] : C | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | semmle.label | this [Return] : B [field c] : C1 | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | semmle.label | this [Return] : B [field c] : C1 | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | semmle.label | this [Return] : B [field c] : C2 | -| A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | semmle.label | this [Return] : B [field c] : C2 | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | semmle.label | this [Reverse] : B [field c] : C | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | semmle.label | this [Reverse] : B [field c] : C | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | semmle.label | this [Reverse] : B [field c] : C1 | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | semmle.label | this [Reverse] : B [field c] : C1 | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | semmle.label | this [Reverse] : B [field c] : C2 | +| A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | semmle.label | this [Reverse] : B [field c] : C2 | | A.cs:145:27:145:27 | c : C | semmle.label | c : C | | A.cs:145:27:145:27 | c : C | semmle.label | c : C | | A.cs:145:27:145:27 | c : C1 | semmle.label | c : C1 | @@ -1541,12 +1451,6 @@ nodes | A.cs:145:32:145:35 | [post] this access : B [field c] : C1 | semmle.label | [post] this access : B [field c] : C1 | | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | semmle.label | [post] this access : B [field c] : C2 | | A.cs:145:32:145:35 | [post] this access : B [field c] : C2 | semmle.label | [post] this access : B [field c] : C2 | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | semmle.label | this access [Reverse] : B [field c] : C | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C | semmle.label | this access [Reverse] : B [field c] : C | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | semmle.label | this access [Reverse] : B [field c] : C1 | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C1 | semmle.label | this access [Reverse] : B [field c] : C1 | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | semmle.label | this access [Reverse] : B [field c] : C2 | -| A.cs:145:32:145:35 | this access [Reverse] : B [field c] : C2 | semmle.label | this access [Reverse] : B [field c] : C2 | | A.cs:145:41:145:41 | access to parameter c : C | semmle.label | access to parameter c : C | | A.cs:145:41:145:41 | access to parameter c : C | semmle.label | access to parameter c : C | | A.cs:145:41:145:41 | access to parameter c : C1 | semmle.label | access to parameter c : C1 | @@ -1571,12 +1475,12 @@ nodes | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | semmle.label | object creation of type B : B [field c] : C | | A.cs:149:26:149:26 | access to parameter c : C | semmle.label | access to parameter c : C | | A.cs:149:26:149:26 | access to parameter c : C | semmle.label | access to parameter c : C | -| A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | semmle.label | this [Return] : MyList [field head] : B | -| A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | semmle.label | this [Return] : MyList [field head] : B | -| A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | semmle.label | this [Return] : MyList [field next, field head] : B | -| A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | semmle.label | this [Return] : MyList [field next, field head] : B | -| A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | semmle.label | this [Return] : MyList [field next, field next, field head] : B | -| A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | semmle.label | this [Return] : MyList [field next, field next, field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | semmle.label | this [Reverse] : MyList [field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | semmle.label | this [Reverse] : MyList [field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | semmle.label | this [Reverse] : MyList [field next, field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | semmle.label | this [Reverse] : MyList [field next, field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this [Reverse] : MyList [field next, field next, field head] : B | +| A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this [Reverse] : MyList [field next, field next, field head] : B | | A.cs:157:25:157:28 | head : B | semmle.label | head : B | | A.cs:157:25:157:28 | head : B | semmle.label | head : B | | A.cs:157:38:157:41 | next : MyList [field head] : B | semmle.label | next : MyList [field head] : B | @@ -1585,22 +1489,12 @@ nodes | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | semmle.label | next : MyList [field next, field head] : B | | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | semmle.label | [post] this access : MyList [field head] : B | | A.cs:159:13:159:16 | [post] this access : MyList [field head] : B | semmle.label | [post] this access : MyList [field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | semmle.label | this access [Reverse] : MyList [field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field head] : B | semmle.label | this access [Reverse] : MyList [field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field next, field head] : B | -| A.cs:159:13:159:16 | this access [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field next, field head] : B | | A.cs:159:25:159:28 | access to parameter head : B | semmle.label | access to parameter head : B | | A.cs:159:25:159:28 | access to parameter head : B | semmle.label | access to parameter head : B | | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | semmle.label | [post] this access : MyList [field next, field head] : B | | A.cs:160:13:160:16 | [post] this access : MyList [field next, field head] : B | semmle.label | [post] this access : MyList [field next, field head] : B | | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | semmle.label | [post] this access : MyList [field next, field next, field head] : B | | A.cs:160:13:160:16 | [post] this access : MyList [field next, field next, field head] : B | semmle.label | [post] this access : MyList [field next, field next, field head] : B | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field head] : B | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field head] : B | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field next, field head] : B | -| A.cs:160:13:160:16 | this access [Reverse] : MyList [field next, field next, field head] : B | semmle.label | this access [Reverse] : MyList [field next, field next, field head] : B | | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | semmle.label | access to parameter next : MyList [field head] : B | | A.cs:160:25:160:28 | access to parameter next : MyList [field head] : B | semmle.label | access to parameter next : MyList [field head] : B | | A.cs:160:25:160:28 | access to parameter next : MyList [field next, field head] : B | semmle.label | access to parameter next : MyList [field next, field head] : B | @@ -1649,32 +1543,26 @@ nodes | B.cs:18:14:18:20 | access to field box1 : Box1 [field elem2] : Elem | semmle.label | access to field box1 : Box1 [field elem2] : Elem | | B.cs:18:14:18:26 | access to field elem2 | semmle.label | access to field elem2 | | B.cs:18:14:18:26 | access to field elem2 | semmle.label | access to field elem2 | -| B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | semmle.label | this [Return] : Box1 [field elem1] : Elem | -| B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | semmle.label | this [Return] : Box1 [field elem1] : Elem | -| B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | semmle.label | this [Return] : Box1 [field elem2] : Elem | -| B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | semmle.label | this [Return] : Box1 [field elem2] : Elem | +| B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | semmle.label | this [Reverse] : Box1 [field elem1] : Elem | +| B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | semmle.label | this [Reverse] : Box1 [field elem1] : Elem | +| B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | semmle.label | this [Reverse] : Box1 [field elem2] : Elem | +| B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | semmle.label | this [Reverse] : Box1 [field elem2] : Elem | | B.cs:29:26:29:27 | e1 : Elem | semmle.label | e1 : Elem | | B.cs:29:26:29:27 | e1 : Elem | semmle.label | e1 : Elem | | B.cs:29:35:29:36 | e2 : Elem | semmle.label | e2 : Elem | | B.cs:29:35:29:36 | e2 : Elem | semmle.label | e2 : Elem | | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | semmle.label | [post] this access : Box1 [field elem1] : Elem | | B.cs:31:13:31:16 | [post] this access : Box1 [field elem1] : Elem | semmle.label | [post] this access : Box1 [field elem1] : Elem | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | semmle.label | this access [Reverse] : Box1 [field elem1] : Elem | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem1] : Elem | semmle.label | this access [Reverse] : Box1 [field elem1] : Elem | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | semmle.label | this access [Reverse] : Box1 [field elem2] : Elem | -| B.cs:31:13:31:16 | this access [Reverse] : Box1 [field elem2] : Elem | semmle.label | this access [Reverse] : Box1 [field elem2] : Elem | | B.cs:31:26:31:27 | access to parameter e1 : Elem | semmle.label | access to parameter e1 : Elem | | B.cs:31:26:31:27 | access to parameter e1 : Elem | semmle.label | access to parameter e1 : Elem | | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | semmle.label | [post] this access : Box1 [field elem2] : Elem | | B.cs:32:13:32:16 | [post] this access : Box1 [field elem2] : Elem | semmle.label | [post] this access : Box1 [field elem2] : Elem | -| B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | semmle.label | this access [Reverse] : Box1 [field elem2] : Elem | -| B.cs:32:13:32:16 | this access [Reverse] : Box1 [field elem2] : Elem | semmle.label | this access [Reverse] : Box1 [field elem2] : Elem | | B.cs:32:26:32:27 | access to parameter e2 : Elem | semmle.label | access to parameter e2 : Elem | | B.cs:32:26:32:27 | access to parameter e2 : Elem | semmle.label | access to parameter e2 : Elem | -| B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | semmle.label | this [Return] : Box2 [field box1, field elem1] : Elem | -| B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | semmle.label | this [Return] : Box2 [field box1, field elem1] : Elem | -| B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | semmle.label | this [Return] : Box2 [field box1, field elem2] : Elem | -| B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | semmle.label | this [Return] : Box2 [field box1, field elem2] : Elem | +| B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | semmle.label | this [Reverse] : Box2 [field box1, field elem1] : Elem | +| B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | semmle.label | this [Reverse] : Box2 [field box1, field elem1] : Elem | +| B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | semmle.label | this [Reverse] : Box2 [field box1, field elem2] : Elem | +| B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | semmle.label | this [Reverse] : Box2 [field box1, field elem2] : Elem | | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | semmle.label | b1 : Box1 [field elem1] : Elem | | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | semmle.label | b1 : Box1 [field elem1] : Elem | | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | semmle.label | b1 : Box1 [field elem2] : Elem | @@ -1683,44 +1571,22 @@ nodes | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem1] : Elem | semmle.label | [post] this access : Box2 [field box1, field elem1] : Elem | | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | semmle.label | [post] this access : Box2 [field box1, field elem2] : Elem | | B.cs:41:13:41:16 | [post] this access : Box2 [field box1, field elem2] : Elem | semmle.label | [post] this access : Box2 [field box1, field elem2] : Elem | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | semmle.label | this access [Reverse] : Box2 [field box1, field elem1] : Elem | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem1] : Elem | semmle.label | this access [Reverse] : Box2 [field box1, field elem1] : Elem | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | semmle.label | this access [Reverse] : Box2 [field box1, field elem2] : Elem | -| B.cs:41:13:41:16 | this access [Reverse] : Box2 [field box1, field elem2] : Elem | semmle.label | this access [Reverse] : Box2 [field box1, field elem2] : Elem | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | semmle.label | access to parameter b1 : Box1 [field elem1] : Elem | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem1] : Elem | semmle.label | access to parameter b1 : Box1 [field elem1] : Elem | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | semmle.label | access to parameter b1 : Box1 [field elem2] : Elem | | B.cs:41:25:41:26 | access to parameter b1 : Box1 [field elem2] : Elem | semmle.label | access to parameter b1 : Box1 [field elem2] : Elem | | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | | C.cs:3:18:3:19 | [post] this access : C [field s1] : Elem | semmle.label | [post] this access : C [field s1] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | semmle.label | this access [Reverse] : C [field s1] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s1] : Elem | semmle.label | this access [Reverse] : C [field s1] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | semmle.label | this access [Reverse] : C [field s2] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s2] : Elem | semmle.label | this access [Reverse] : C [field s2] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | -| C.cs:3:18:3:19 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | | C.cs:3:23:3:37 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:3:23:3:37 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | | C.cs:4:27:4:28 | [post] this access : C [field s2] : Elem | semmle.label | [post] this access : C [field s2] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | semmle.label | this access [Reverse] : C [field s2] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s2] : Elem | semmle.label | this access [Reverse] : C [field s2] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | -| C.cs:4:27:4:28 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | | C.cs:4:32:4:46 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:4:32:4:46 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:6:30:6:44 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:6:30:6:44 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : C [property s5] : Elem | | C.cs:7:18:7:19 | [post] this access : C [property s5] : Elem | semmle.label | [post] this access : C [property s5] : Elem | -| C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:7:18:7:19 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | -| C.cs:7:18:7:19 | this access [Reverse] : C [property s5] : Elem | semmle.label | this access [Reverse] : C [property s5] : Elem | | C.cs:7:37:7:51 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:7:37:7:51 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:8:30:8:44 | call to method Source : Elem | semmle.label | call to method Source : Elem | @@ -1749,18 +1615,16 @@ nodes | C.cs:13:9:13:9 | access to local variable c : C [field s3] : Elem | semmle.label | access to local variable c : C [field s3] : Elem | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | semmle.label | access to local variable c : C [property s5] : Elem | | C.cs:13:9:13:9 | access to local variable c : C [property s5] : Elem | semmle.label | access to local variable c : C [property s5] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | semmle.label | this [Return] : C [field s1] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s1] : Elem | semmle.label | this [Return] : C [field s1] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | semmle.label | this [Return] : C [field s2] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s2] : Elem | semmle.label | this [Return] : C [field s2] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | semmle.label | this [Return] : C [field s3] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [field s3] : Elem | semmle.label | this [Return] : C [field s3] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | semmle.label | this [Return] : C [property s5] : Elem | -| C.cs:16:13:16:13 | this [Return] : C [property s5] : Elem | semmle.label | this [Return] : C [property s5] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | semmle.label | this [Reverse] : C [field s1] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s1] : Elem | semmle.label | this [Reverse] : C [field s1] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | semmle.label | this [Reverse] : C [field s2] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s2] : Elem | semmle.label | this [Reverse] : C [field s2] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | semmle.label | this [Reverse] : C [field s3] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [field s3] : Elem | semmle.label | this [Reverse] : C [field s3] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | semmle.label | this [Reverse] : C [property s5] : Elem | +| C.cs:16:13:16:13 | this [Reverse] : C [property s5] : Elem | semmle.label | this [Reverse] : C [property s5] : Elem | | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | semmle.label | [post] this access : C [field s3] : Elem | | C.cs:18:9:18:12 | [post] this access : C [field s3] : Elem | semmle.label | [post] this access : C [field s3] : Elem | -| C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | -| C.cs:18:9:18:12 | this access [Reverse] : C [field s3] : Elem | semmle.label | this access [Reverse] : C [field s3] : Elem | | C.cs:18:19:18:33 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:18:19:18:33 | call to method Source : Elem | semmle.label | call to method Source : Elem | | C.cs:21:17:21:18 | this : C [field s1] : Elem | semmle.label | this : C [field s1] : Elem | @@ -1797,14 +1661,12 @@ nodes | D.cs:8:22:8:25 | this access : D [field trivialPropField] : Object | semmle.label | this access : D [field trivialPropField] : Object | | D.cs:8:22:8:42 | access to field trivialPropField : Object | semmle.label | access to field trivialPropField : Object | | D.cs:8:22:8:42 | access to field trivialPropField : Object | semmle.label | access to field trivialPropField : Object | -| D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | semmle.label | this [Return] : D [field trivialPropField] : Object | -| D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | semmle.label | this [Return] : D [field trivialPropField] : Object | +| D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | semmle.label | this [Reverse] : D [field trivialPropField] : Object | +| D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | semmle.label | this [Reverse] : D [field trivialPropField] : Object | | D.cs:9:9:9:11 | value : Object | semmle.label | value : Object | | D.cs:9:9:9:11 | value : Object | semmle.label | value : Object | | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | semmle.label | [post] this access : D [field trivialPropField] : Object | | D.cs:9:15:9:18 | [post] this access : D [field trivialPropField] : Object | semmle.label | [post] this access : D [field trivialPropField] : Object | -| D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | semmle.label | this access [Reverse] : D [field trivialPropField] : Object | -| D.cs:9:15:9:18 | this access [Reverse] : D [field trivialPropField] : Object | semmle.label | this access [Reverse] : D [field trivialPropField] : Object | | D.cs:9:39:9:43 | access to parameter value : Object | semmle.label | access to parameter value : Object | | D.cs:9:39:9:43 | access to parameter value : Object | semmle.label | access to parameter value : Object | | D.cs:14:9:14:11 | this : D [field trivialPropField] : Object | semmle.label | this : D [field trivialPropField] : Object | @@ -1813,8 +1675,8 @@ nodes | D.cs:14:22:14:25 | this access : D [field trivialPropField] : Object | semmle.label | this access : D [field trivialPropField] : Object | | D.cs:14:22:14:42 | access to field trivialPropField : Object | semmle.label | access to field trivialPropField : Object | | D.cs:14:22:14:42 | access to field trivialPropField : Object | semmle.label | access to field trivialPropField : Object | -| D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | semmle.label | this [Return] : D [field trivialPropField] : Object | -| D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | semmle.label | this [Return] : D [field trivialPropField] : Object | +| D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | semmle.label | this [Reverse] : D [field trivialPropField] : Object | +| D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | semmle.label | this [Reverse] : D [field trivialPropField] : Object | | D.cs:15:9:15:11 | value : Object | semmle.label | value : Object | | D.cs:15:9:15:11 | value : Object | semmle.label | value : Object | | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | semmle.label | [post] this access : D [field trivialPropField] : Object | @@ -1917,16 +1779,12 @@ nodes | E.cs:24:14:24:14 | access to local variable s : S [field Field] : Object | semmle.label | access to local variable s : S [field Field] : Object | | E.cs:24:14:24:20 | access to field Field | semmle.label | access to field Field | | E.cs:24:14:24:20 | access to field Field | semmle.label | access to field Field | -| E.cs:43:36:43:36 | s [Return] : RefS [field RefField] : Object | semmle.label | s [Return] : RefS [field RefField] : Object | -| E.cs:43:36:43:36 | s [Return] : RefS [field RefField] : Object | semmle.label | s [Return] : RefS [field RefField] : Object | +| E.cs:43:36:43:36 | s [Reverse] : RefS [field RefField] : Object | semmle.label | s [Reverse] : RefS [field RefField] : Object | +| E.cs:43:36:43:36 | s [Reverse] : RefS [field RefField] : Object | semmle.label | s [Reverse] : RefS [field RefField] : Object | | E.cs:43:46:43:46 | o : Object | semmle.label | o : Object | | E.cs:43:46:43:46 | o : Object | semmle.label | o : Object | -| E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | semmle.label | access to parameter s [Reverse] : RefS [field RefField] : Object | -| E.cs:45:9:45:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | semmle.label | access to parameter s [Reverse] : RefS [field RefField] : Object | | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | semmle.label | [post] access to parameter s : RefS [field RefField] : Object | | E.cs:46:9:46:9 | [post] access to parameter s : RefS [field RefField] : Object | semmle.label | [post] access to parameter s : RefS [field RefField] : Object | -| E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | semmle.label | access to parameter s [Reverse] : RefS [field RefField] : Object | -| E.cs:46:9:46:9 | access to parameter s [Reverse] : RefS [field RefField] : Object | semmle.label | access to parameter s [Reverse] : RefS [field RefField] : Object | | E.cs:46:22:46:22 | access to parameter o : Object | semmle.label | access to parameter o : Object | | E.cs:46:22:46:22 | access to parameter o : Object | semmle.label | access to parameter o : Object | | E.cs:54:13:54:17 | access to local variable taint : Object | semmle.label | access to local variable taint : Object | @@ -2105,20 +1963,18 @@ nodes | G.cs:63:34:63:37 | access to field Elem : Elem | semmle.label | access to field Elem : Elem | | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | semmle.label | this access : Box1 [field Elem] : Elem | | G.cs:63:34:63:37 | this access : Box1 [field Elem] : Elem | semmle.label | this access : Box1 [field Elem] : Elem | -| G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | semmle.label | this [Return] : Box1 [field Elem] : Elem | -| G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | semmle.label | this [Return] : Box1 [field Elem] : Elem | +| G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | semmle.label | this [Reverse] : Box1 [field Elem] : Elem | +| G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | semmle.label | this [Reverse] : Box1 [field Elem] : Elem | | G.cs:64:34:64:34 | e : Elem | semmle.label | e : Elem | | G.cs:64:34:64:34 | e : Elem | semmle.label | e : Elem | | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | semmle.label | [post] this access : Box1 [field Elem] : Elem | | G.cs:64:39:64:42 | [post] this access : Box1 [field Elem] : Elem | semmle.label | [post] this access : Box1 [field Elem] : Elem | -| G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | semmle.label | this access [Reverse] : Box1 [field Elem] : Elem | -| G.cs:64:39:64:42 | this access [Reverse] : Box1 [field Elem] : Elem | semmle.label | this access [Reverse] : Box1 [field Elem] : Elem | | G.cs:64:46:64:46 | access to parameter e : Elem | semmle.label | access to parameter e : Elem | | G.cs:64:46:64:46 | access to parameter e : Elem | semmle.label | access to parameter e : Elem | | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | semmle.label | this : Box2 [field Box1, field Elem] : Elem | | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | semmle.label | this : Box2 [field Box1, field Elem] : Elem | -| G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | semmle.label | this [Return] : Box2 [field Box1, field Elem] : Elem | -| G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | semmle.label | this [Return] : Box2 [field Box1, field Elem] : Elem | +| G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | semmle.label | this [Reverse] : Box2 [field Box1, field Elem] : Elem | +| G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | semmle.label | this [Reverse] : Box2 [field Box1, field Elem] : Elem | | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | semmle.label | access to field Box1 : Box1 [field Elem] : Elem | | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | semmle.label | access to field Box1 : Box1 [field Elem] : Elem | | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | semmle.label | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | @@ -2187,12 +2043,10 @@ nodes | H.cs:45:14:45:21 | access to field FieldB | semmle.label | access to field FieldB | | H.cs:53:25:53:25 | a : A [field FieldA] : Object | semmle.label | a : A [field FieldA] : Object | | H.cs:53:25:53:25 | a : A [field FieldA] : Object | semmle.label | a : A [field FieldA] : Object | -| H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | semmle.label | b1 [Return] : B [field FieldB] : Object | -| H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | semmle.label | b1 [Return] : B [field FieldB] : Object | +| H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | semmle.label | b1 [Reverse] : B [field FieldB] : Object | +| H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | semmle.label | b1 [Reverse] : B [field FieldB] : Object | | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | semmle.label | [post] access to parameter b1 : B [field FieldB] : Object | | H.cs:55:9:55:10 | [post] access to parameter b1 : B [field FieldB] : Object | semmle.label | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | semmle.label | access to parameter b1 [Reverse] : B [field FieldB] : Object | -| H.cs:55:9:55:10 | access to parameter b1 [Reverse] : B [field FieldB] : Object | semmle.label | access to parameter b1 [Reverse] : B [field FieldB] : Object | | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | semmle.label | access to parameter a : A [field FieldA] : Object | | H.cs:55:21:55:21 | access to parameter a : A [field FieldA] : Object | semmle.label | access to parameter a : A [field FieldA] : Object | | H.cs:55:21:55:28 | access to field FieldA : Object | semmle.label | access to field FieldA : Object | @@ -2209,16 +2063,14 @@ nodes | H.cs:65:14:65:15 | access to local variable b1 : B [field FieldB] : Object | semmle.label | access to local variable b1 : B [field FieldB] : Object | | H.cs:65:14:65:22 | access to field FieldB | semmle.label | access to field FieldB | | H.cs:65:14:65:22 | access to field FieldB | semmle.label | access to field FieldB | -| H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | semmle.label | a [Return] : A [field FieldA] : Object | -| H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | semmle.label | a [Return] : A [field FieldA] : Object | +| H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | semmle.label | a [Reverse] : A [field FieldA] : Object | +| H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | semmle.label | a [Reverse] : A [field FieldA] : Object | | H.cs:77:30:77:30 | o : Object | semmle.label | o : Object | | H.cs:77:30:77:30 | o : Object | semmle.label | o : Object | -| H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | semmle.label | b1 [Return] : B [field FieldB] : Object | -| H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | semmle.label | b1 [Return] : B [field FieldB] : Object | +| H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | semmle.label | b1 [Reverse] : B [field FieldB] : Object | +| H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | semmle.label | b1 [Reverse] : B [field FieldB] : Object | | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | semmle.label | [post] access to parameter a : A [field FieldA] : Object | | H.cs:79:9:79:9 | [post] access to parameter a : A [field FieldA] : Object | semmle.label | [post] access to parameter a : A [field FieldA] : Object | -| H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | semmle.label | access to parameter a [Reverse] : A [field FieldA] : Object | -| H.cs:79:9:79:9 | access to parameter a [Reverse] : A [field FieldA] : Object | semmle.label | access to parameter a [Reverse] : A [field FieldA] : Object | | H.cs:79:20:79:20 | access to parameter o : Object | semmle.label | access to parameter o : Object | | H.cs:79:20:79:20 | access to parameter o : Object | semmle.label | access to parameter o : Object | | H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | semmle.label | access to parameter a : A [field FieldA] : Object | @@ -2303,10 +2155,10 @@ nodes | H.cs:147:25:147:38 | call to method Source : A | semmle.label | call to method Source : A | | H.cs:148:14:148:14 | access to local variable a | semmle.label | access to local variable a | | H.cs:148:14:148:14 | access to local variable a | semmle.label | access to local variable a | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | semmle.label | a [Return] : A [field FieldA, field FieldB] : Object | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | semmle.label | a [Return] : A [field FieldA, field FieldB] : Object | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | semmle.label | a [Return] : A [field FieldA] : B | -| H.cs:153:22:153:22 | a [Return] : A [field FieldA] : B | semmle.label | a [Return] : A [field FieldA] : B | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | semmle.label | a [Reverse] : A [field FieldA, field FieldB] : Object | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | semmle.label | a [Reverse] : A [field FieldA, field FieldB] : Object | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | semmle.label | a [Reverse] : A [field FieldA] : B | +| H.cs:153:22:153:22 | a [Reverse] : A [field FieldA] : B | semmle.label | a [Reverse] : A [field FieldA] : B | | H.cs:153:32:153:32 | o : Object | semmle.label | o : Object | | H.cs:153:32:153:32 | o : Object | semmle.label | o : Object | | H.cs:155:13:155:13 | access to local variable b : B | semmle.label | access to local variable b : B | @@ -2323,10 +2175,6 @@ nodes | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA, field FieldB] : Object | semmle.label | [post] access to parameter a : A [field FieldA, field FieldB] : Object | | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | semmle.label | [post] access to parameter a : A [field FieldA] : B | | H.cs:157:9:157:9 | [post] access to parameter a : A [field FieldA] : B | semmle.label | [post] access to parameter a : A [field FieldA] : B | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | semmle.label | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | semmle.label | access to parameter a [Reverse] : A [field FieldA, field FieldB] : Object | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | semmle.label | access to parameter a [Reverse] : A [field FieldA] : B | -| H.cs:157:9:157:9 | access to parameter a [Reverse] : A [field FieldA] : B | semmle.label | access to parameter a [Reverse] : A [field FieldA] : B | | H.cs:157:20:157:20 | access to local variable b : B | semmle.label | access to local variable b : B | | H.cs:157:20:157:20 | access to local variable b : B | semmle.label | access to local variable b : B | | H.cs:157:20:157:20 | access to local variable b : B [field FieldB] : Object | semmle.label | access to local variable b : B [field FieldB] : Object | @@ -2363,12 +2211,10 @@ nodes | H.cs:167:14:167:14 | access to local variable b : B [field FieldB] : Object | semmle.label | access to local variable b : B [field FieldB] : Object | | H.cs:167:14:167:21 | access to field FieldB | semmle.label | access to field FieldB | | H.cs:167:14:167:21 | access to field FieldB | semmle.label | access to field FieldB | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | semmle.label | this [Return] : I [field Field1] : Object | -| I.cs:5:12:5:12 | this [Return] : I [field Field1] : Object | semmle.label | this [Return] : I [field Field1] : Object | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | semmle.label | this [Reverse] : I [field Field1] : Object | +| I.cs:5:12:5:12 | this [Reverse] : I [field Field1] : Object | semmle.label | this [Reverse] : I [field Field1] : Object | | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | semmle.label | [post] this access : I [field Field1] : Object | | I.cs:7:9:7:14 | [post] this access : I [field Field1] : Object | semmle.label | [post] this access : I [field Field1] : Object | -| I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | semmle.label | this access [Reverse] : I [field Field1] : Object | -| I.cs:7:9:7:14 | this access [Reverse] : I [field Field1] : Object | semmle.label | this access [Reverse] : I [field Field1] : Object | | I.cs:7:18:7:34 | call to method Source : Object | semmle.label | call to method Source : Object | | I.cs:7:18:7:34 | call to method Source : Object | semmle.label | call to method Source : Object | | I.cs:13:13:13:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | @@ -2425,32 +2271,26 @@ nodes | I.cs:40:14:40:14 | access to parameter i : I [field Field1] : Object | semmle.label | access to parameter i : I [field Field1] : Object | | I.cs:40:14:40:21 | access to field Field1 | semmle.label | access to field Field1 | | I.cs:40:14:40:21 | access to field Field1 | semmle.label | access to field Field1 | -| J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | semmle.label | this [Return] : RecordClass [property Prop1] : Object | -| J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | semmle.label | this [Return] : RecordClass [property Prop1] : Object | +| J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | semmle.label | this [Reverse] : RecordClass [property Prop1] : Object | +| J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | semmle.label | this [Reverse] : RecordClass [property Prop1] : Object | | J.cs:6:40:6:44 | Prop1 : Object | semmle.label | Prop1 : Object | | J.cs:6:40:6:44 | Prop1 : Object | semmle.label | Prop1 : Object | -| J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | semmle.label | this [Return] : RecordStruct [property Prop1] : Object | -| J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | semmle.label | this [Return] : RecordStruct [property Prop1] : Object | +| J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | semmle.label | this [Reverse] : RecordStruct [property Prop1] : Object | +| J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | semmle.label | this [Reverse] : RecordStruct [property Prop1] : Object | | J.cs:8:42:8:46 | Prop1 : Object | semmle.label | Prop1 : Object | | J.cs:8:42:8:46 | Prop1 : Object | semmle.label | Prop1 : Object | -| J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | semmle.label | this [Return] : Struct [field Field] : Object | -| J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | semmle.label | this [Return] : Struct [field Field] : Object | -| J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | semmle.label | this [Return] : Struct [property Prop] : Object | -| J.cs:14:12:14:17 | this [Return] : Struct [property Prop] : Object | semmle.label | this [Return] : Struct [property Prop] : Object | +| J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | semmle.label | this [Reverse] : Struct [field Field] : Object | +| J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | semmle.label | this [Reverse] : Struct [field Field] : Object | +| J.cs:14:12:14:17 | this [Reverse] : Struct [property Prop] : Object | semmle.label | this [Reverse] : Struct [property Prop] : Object | +| J.cs:14:12:14:17 | this [Reverse] : Struct [property Prop] : Object | semmle.label | this [Reverse] : Struct [property Prop] : Object | | J.cs:14:26:14:30 | field : Object | semmle.label | field : Object | | J.cs:14:26:14:30 | field : Object | semmle.label | field : Object | | J.cs:14:40:14:43 | prop : Object | semmle.label | prop : Object | | J.cs:14:40:14:43 | prop : Object | semmle.label | prop : Object | | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | semmle.label | [post] this access : Struct [field Field] : Object | | J.cs:14:50:14:54 | [post] this access : Struct [field Field] : Object | semmle.label | [post] this access : Struct [field Field] : Object | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | semmle.label | this access [Reverse] : Struct [field Field] : Object | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [field Field] : Object | semmle.label | this access [Reverse] : Struct [field Field] : Object | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | semmle.label | this access [Reverse] : Struct [property Prop] : Object | -| J.cs:14:50:14:54 | this access [Reverse] : Struct [property Prop] : Object | semmle.label | this access [Reverse] : Struct [property Prop] : Object | | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | semmle.label | [post] this access : Struct [property Prop] : Object | | J.cs:14:57:14:60 | [post] this access : Struct [property Prop] : Object | semmle.label | [post] this access : Struct [property Prop] : Object | -| J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | semmle.label | this access [Reverse] : Struct [property Prop] : Object | -| J.cs:14:57:14:60 | this access [Reverse] : Struct [property Prop] : Object | semmle.label | this access [Reverse] : Struct [property Prop] : Object | | J.cs:14:66:14:70 | access to parameter field : Object | semmle.label | access to parameter field : Object | | J.cs:14:66:14:70 | access to parameter field : Object | semmle.label | access to parameter field : Object | | J.cs:14:73:14:76 | access to parameter prop : Object | semmle.label | access to parameter prop : Object | @@ -2708,48 +2548,48 @@ nodes subpaths | A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | | A.cs:6:24:6:24 | access to local variable c : C | A.cs:147:32:147:32 | c : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | A.cs:6:17:6:25 | call to method Make : B [field c] : C | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | -| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | A.cs:145:21:145:23 | this [Return] : B [field c] : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | +| A.cs:13:15:13:29 | call to method Source : C1 | A.cs:145:27:145:27 | c : C1 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C1 | A.cs:13:9:13:9 | [post] access to local variable b : B [field c] : C1 | | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | A.cs:14:14:14:20 | call to method Get | | A.cs:14:14:14:14 | access to local variable b : B [field c] : C1 | A.cs:146:18:146:20 | this : B [field c] : C1 | A.cs:146:33:146:38 | access to field c : C1 | A.cs:14:14:14:20 | call to method Get | | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | A.cs:15:14:15:42 | call to method Get | | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | A.cs:146:18:146:20 | this : B [field c] : C | A.cs:146:33:146:38 | access to field c : C | A.cs:15:14:15:42 | call to method Get | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | -| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | +| A.cs:15:21:15:34 | call to method Source : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | A.cs:15:15:15:35 | object creation of type B : B [field c] : C | | A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | | A.cs:22:25:22:37 | call to method Source : C2 | A.cs:42:29:42:29 | c : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | A.cs:22:14:22:38 | call to method SetOnB : B [field c] : C2 | | A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | | A.cs:31:29:31:41 | call to method Source : C2 | A.cs:36:33:36:33 | c : C2 | A.cs:39:16:39:28 | ... ? ... : ... : B [field c] : C2 | A.cs:31:14:31:42 | call to method SetOnBWrap : B [field c] : C2 | | A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | | A.cs:38:29:38:29 | access to parameter c : C2 | A.cs:42:29:42:29 | c : C2 | A.cs:48:20:48:21 | access to local variable b2 : B [field c] : C2 | A.cs:38:18:38:30 | call to method SetOnB : B [field c] : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | -| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | A.cs:145:21:145:23 | this [Return] : B [field c] : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | A.cs:145:21:145:23 | this [Return] : B [field c] : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | -| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | A.cs:145:21:145:23 | this [Return] : B [field c] : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | A.cs:95:16:95:16 | this [Return] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | -| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | A.cs:157:16:157:21 | this [Return] : MyList [field head] : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | -| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | -| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Return] : MyList [field next, field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | -| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Return] : B [field c] : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | -| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem1] : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | -| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | -| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | B.cs:29:16:29:19 | this [Return] : Box1 [field elem2] : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | -| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:39:16:39:19 | this [Return] : Box2 [field box1, field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Return] : D [field trivialPropField] : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | -| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | D.cs:15:9:15:11 | this [Return] : D [field trivialPropField] : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | +| A.cs:47:20:47:20 | access to parameter c : C2 | A.cs:145:27:145:27 | c : C2 | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C2 | A.cs:47:13:47:14 | [post] access to local variable b2 : B [field c] : C2 | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | +| A.cs:83:15:83:26 | call to method Source : C | A.cs:145:27:145:27 | c : C | A.cs:145:21:145:23 | this [Reverse] : B [field c] : C | A.cs:83:9:83:9 | [post] access to parameter b : B [field c] : C | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | +| A.cs:105:23:105:23 | access to local variable b : B | A.cs:95:20:95:20 | b : B | A.cs:95:16:95:16 | this [Reverse] : D [field b] : B | A.cs:105:17:105:29 | object creation of type D : D [field b] : B | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | +| A.cs:114:29:114:29 | access to local variable b : B | A.cs:157:25:157:28 | head : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field head] : B | A.cs:114:18:114:54 | object creation of type MyList : MyList [field head] : B | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | +| A.cs:115:35:115:36 | access to local variable l1 : MyList [field head] : B | A.cs:157:38:157:41 | next : MyList [field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field head] : B | A.cs:115:18:115:37 | object creation of type MyList : MyList [field next, field head] : B | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | +| A.cs:116:35:116:36 | access to local variable l2 : MyList [field next, field head] : B | A.cs:157:38:157:41 | next : MyList [field next, field head] : B | A.cs:157:16:157:21 | this [Reverse] : MyList [field next, field next, field head] : B | A.cs:116:18:116:37 | object creation of type MyList : MyList [field next, field next, field head] : B | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | +| A.cs:149:26:149:26 | access to parameter c : C | A.cs:141:20:141:20 | c : C | A.cs:141:16:141:16 | this [Reverse] : B [field c] : C | A.cs:149:20:149:27 | object creation of type B : B [field c] : C | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | +| B.cs:6:27:6:27 | access to local variable e : Elem | B.cs:29:26:29:27 | e1 : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem1] : Elem | B.cs:6:18:6:34 | object creation of type Box1 : Box1 [field elem1] : Elem | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | +| B.cs:7:27:7:28 | access to local variable b1 : Box1 [field elem1] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem1] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem1] : Elem | B.cs:7:18:7:29 | object creation of type Box2 : Box2 [field box1, field elem1] : Elem | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | +| B.cs:15:33:15:33 | access to local variable e : Elem | B.cs:29:35:29:36 | e2 : Elem | B.cs:29:16:29:19 | this [Reverse] : Box1 [field elem2] : Elem | B.cs:15:18:15:34 | object creation of type Box1 : Box1 [field elem2] : Elem | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | +| B.cs:16:27:16:28 | access to local variable b1 : Box1 [field elem2] : Elem | B.cs:39:26:39:27 | b1 : Box1 [field elem2] : Elem | B.cs:39:16:39:19 | this [Reverse] : Box2 [field box1, field elem2] : Elem | B.cs:16:18:16:29 | object creation of type Box2 : Box2 [field box1, field elem2] : Elem | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | +| D.cs:15:34:15:38 | access to parameter value : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:15:15:15:18 | [post] this access : D [field trivialPropField] : Object | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | +| D.cs:22:27:22:28 | access to parameter o2 : Object | D.cs:9:9:9:11 | value : Object | D.cs:9:9:9:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:22:9:22:11 | [post] access to local variable ret : D [field trivialPropField] : Object | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | +| D.cs:23:27:23:28 | access to parameter o3 : Object | D.cs:15:9:15:11 | value : Object | D.cs:15:9:15:11 | this [Reverse] : D [field trivialPropField] : Object | D.cs:23:9:23:11 | [post] access to local variable ret : D [field trivialPropField] : Object | | D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | | D.cs:31:24:31:24 | access to local variable o : Object | D.cs:18:28:18:29 | o1 : Object | D.cs:24:16:24:18 | access to local variable ret : D [property AutoProp] : Object | D.cs:31:17:31:37 | call to method Create : D [property AutoProp] : Object | | D.cs:37:26:37:42 | call to method Source : Object | D.cs:18:39:18:40 | o2 : Object | D.cs:24:16:24:18 | access to local variable ret : D [field trivialPropField] : Object | D.cs:37:13:37:49 | call to method Create : D [field trivialPropField] : Object | @@ -2766,20 +2606,20 @@ subpaths | 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 | | 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 | -| 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 | +| 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 [Reverse] : RefS [field RefField] : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : 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 [Reverse] : RefS [field RefField] : Object | E.cs:55:23:55:26 | [post] access to local variable refs : RefS [field RefField] : Object | | F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | | F.cs:11:24:11:24 | access to local variable o : Object | F.cs:6:28:6:29 | o1 : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field1] : Object | F.cs:11:17:11:31 | call to method Create : F [field Field1] : Object | | F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | | F.cs:15:26:15:42 | call to method Source : Object | F.cs:6:39:6:40 | o2 : Object | F.cs:6:46:6:81 | object creation of type F : F [field Field2] : Object | F.cs:15:13:15:43 | call to method Create : F [field Field2] : Object | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | -| G.cs:25:9:25:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:25:9:25:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:9:33:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:9:33:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Return] : Box2 [field Box1, field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | -| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Return] : Box1 [field Elem] : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | +| G.cs:17:24:17:24 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | G.cs:17:9:17:14 | [post] access to field Box1 : Box1 [field Elem] : Elem | +| G.cs:25:9:25:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | +| G.cs:25:9:25:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:25:9:25:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | +| G.cs:33:9:33:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | +| G.cs:33:9:33:19 | call to method GetBox1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 [Reverse] : Box1 [field Elem] : Elem | G.cs:71:21:71:27 | this [Reverse] : Box2 [field Box1, field Elem] : Elem | G.cs:33:9:33:9 | [post] access to local variable b : Box2 [field Box1, field Elem] : Elem | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | +| G.cs:33:29:33:29 | access to local variable e : Elem | G.cs:64:34:64:34 | e : Elem | G.cs:64:21:64:27 | this [Reverse] : Box1 [field Elem] : Elem | G.cs:33:9:33:19 | [post] call to method GetBox1 : Box1 [field Elem] : Elem | | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | | G.cs:39:14:39:15 | access to parameter b2 : Box2 [field Box1, field Elem] : Elem | G.cs:71:21:71:27 | this : Box2 [field Box1, field Elem] : Elem | G.cs:71:34:71:37 | access to field Box1 : Box1 [field Elem] : Elem | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | | G.cs:39:14:39:25 | call to method GetBox1 : Box1 [field Elem] : Elem | G.cs:63:21:63:27 | this : Box1 [field Elem] : Elem | G.cs:63:34:63:37 | access to field Elem : Elem | G.cs:39:14:39:35 | call to method GetElem | @@ -2788,14 +2628,14 @@ subpaths | H.cs:24:27:24:27 | access to local variable a : A [field FieldA] : Object | H.cs:13:15:13:15 | a : A [field FieldA] : Object | H.cs:17:16:17:18 | access to local variable ret : A [field FieldA] : Object | H.cs:24:21:24:28 | call to method Clone : A [field FieldA] : Object | | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | | H.cs:44:27:44:27 | access to local variable a : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | H.cs:44:17:44:28 | call to method Transform : B [field FieldB] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Return] : B [field FieldB] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:20:77:20 | a [Return] : A [field FieldA] : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | -| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:35:77:36 | b1 [Return] : B [field FieldB] : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | +| H.cs:64:22:64:22 | access to local variable a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | H.cs:64:25:64:26 | [post] access to local variable b1 : B [field FieldB] : Object | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | +| H.cs:80:22:80:22 | access to parameter a : A [field FieldA] : Object | H.cs:53:25:53:25 | a : A [field FieldA] : Object | H.cs:53:30:53:31 | b1 [Reverse] : B [field FieldB] : Object | H.cs:80:25:80:26 | [post] access to parameter b1 : B [field FieldB] : Object | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:20:77:20 | a [Reverse] : A [field FieldA] : Object | H.cs:88:17:88:17 | [post] access to local variable a : A [field FieldA] : Object | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | +| H.cs:88:20:88:36 | call to method Source : Object | H.cs:77:30:77:30 | o : Object | H.cs:77:35:77:36 | b1 [Reverse] : B [field FieldB] : Object | H.cs:88:39:88:40 | [post] access to local variable b1 : B [field FieldB] : Object | | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | | H.cs:106:26:106:39 | (...) ... : A [field FieldA] : Object | H.cs:33:19:33:19 | a : A [field FieldA] : Object | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | | H.cs:113:31:113:31 | access to local variable a : A [field FieldA] : Object | H.cs:102:23:102:23 | a : A [field FieldA] : Object | H.cs:106:16:106:40 | call to method Transform : B [field FieldB] : Object | H.cs:113:17:113:32 | call to method TransformWrap : B [field FieldB] : Object | @@ -2808,16 +2648,16 @@ subpaths | H.cs:142:26:142:26 | access to local variable a : A [field FieldA] : A | H.cs:33:19:33:19 | a : A [field FieldA] : A | H.cs:37:16:37:16 | access to local variable b : B [field FieldB] : A | H.cs:142:16:142:27 | call to method Transform : B [field FieldB] : A | | H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | H.cs:142:16:142:34 | access to field FieldB : A | H.cs:147:17:147:39 | call to method Through : A | | H.cs:147:25:147:38 | call to method Source : A | H.cs:138:27:138:27 | o : A | H.cs:142:16:142:34 | access to field FieldB : A | H.cs:147:17:147:39 | call to method Through : A | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | -| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | H.cs:153:22:153:22 | a [Return] : A [field FieldA, field FieldB] : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | -| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | -| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Return] : RecordClass [property Prop1] : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | -| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | -| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Return] : RecordStruct [property Prop1] : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | -| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | J.cs:14:12:14:17 | this [Return] : Struct [field Field] : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : 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 | -| 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 | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | +| H.cs:164:22:164:22 | access to local variable o : Object | H.cs:153:32:153:32 | o : Object | H.cs:153:22:153:22 | a [Reverse] : A [field FieldA, field FieldB] : Object | H.cs:164:19:164:19 | [post] access to local variable a : A [field FieldA, field FieldB] : Object | +| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | +| J.cs:22:34:22:34 | access to local variable o : Object | J.cs:6:40:6:44 | Prop1 : Object | J.cs:6:21:6:31 | this [Reverse] : RecordClass [property Prop1] : Object | J.cs:22:18:22:41 | object creation of type RecordClass : RecordClass [property Prop1] : Object | +| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | +| J.cs:42:35:42:35 | access to local variable o : Object | J.cs:8:42:8:46 | Prop1 : Object | J.cs:8:22:8:33 | this [Reverse] : RecordStruct [property Prop1] : Object | J.cs:42:18:42:42 | object creation of type RecordStruct : RecordStruct [property Prop1] : Object | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : Object | +| J.cs:62:29:62:29 | access to local variable o : Object | J.cs:14:26:14:30 | field : Object | J.cs:14:12:14:17 | this [Reverse] : Struct [field Field] : Object | J.cs:62:18:62:36 | object creation of type Struct : Struct [field Field] : 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 [Reverse] : 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 [Reverse] : Struct [property Prop] : Object | J.cs:80:18:80:36 | object creation of type Struct : Struct [property Prop] : Object | testFailures #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 | diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index d762ff3ae7a10..3e0c393d7fab7 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -45,6 +45,8 @@ edges | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | Capture.cs:124:15:124:20 | access to local variable sink40 | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | @@ -142,11 +144,13 @@ edges | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | -| Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | provenance | | -| Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | Capture.cs:217:19:217:19 | access to parameter s | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | Capture.cs:55:27:58:17 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | Capture.cs:57:27:57:32 | access to parameter sink39 | provenance | | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:355:45:355:45 | x : String | Capture.cs:357:11:357:11 | access to parameter x : String | provenance | | | Capture.cs:357:11:357:11 | access to parameter x : String | Capture.cs:273:19:273:19 | x : String | provenance | | | GlobalDataFlow.cs:18:9:18:23 | access to field SinkField0 : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | provenance | | @@ -422,21 +426,20 @@ edges | GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | provenance | | | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | provenance | | | GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | provenance | | @@ -646,11 +649,13 @@ nodes | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | semmle.label | a : (...) => ... [captured s] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | -| Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | semmle.label | a [Return] : (...) => ... [captured sink40] : String | +| Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | a [Reverse] : (...) => ... [captured sink40] : String | | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | semmle.label | [post] access to parameter a : (...) => ... [captured sink40] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | semmle.label | access to parameter a : (...) => ... [captured s] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | semmle.label | access to parameter a : (...) => ... [captured sink39] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | semmle.label | access to parameter a : (...) => ... [captured sink39] : String | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | | Capture.cs:355:45:355:45 | x : String | semmle.label | x : String | | Capture.cs:357:11:357:11 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:18:9:18:23 | access to field SinkField0 : String | semmle.label | access to field SinkField0 : String | @@ -879,9 +884,8 @@ nodes | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | semmle.label | access to parameter s | | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | semmle.label | access to parameter arg : String | | GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | semmle.label | "taint source" : String | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | semmle.label | sc [Return] : SimpleClass [field field] : String | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | semmle.label | sc [Reverse] : SimpleClass [field field] : String | | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | semmle.label | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | semmle.label | access to parameter sc [Reverse] : SimpleClass [field field] : String | | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | semmle.label | [post] access to local variable x1 : SimpleClass [field field] : String | | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | semmle.label | [post] access to local variable x2 : SimpleClass [field field] : String | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index e9a27c7eef51e..be91ae5862c16 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -55,6 +55,8 @@ edges | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | Capture.cs:124:15:124:20 | access to local variable sink40 | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:134:9:134:23 | access to local function CaptureThrough1 : CaptureThrough1 [captured tainted] : String | provenance | | | Capture.cs:127:25:127:31 | tainted : String | Capture.cs:146:9:146:23 | access to local function CaptureThrough2 : CaptureThrough2 [captured tainted] : String | provenance | | @@ -152,11 +154,13 @@ edges | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | provenance | | -| Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | provenance | | -| Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | Capture.cs:217:19:217:19 | access to parameter s | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | Capture.cs:55:27:58:17 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | Capture.cs:57:27:57:32 | access to parameter sink39 | provenance | | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | provenance | | | Capture.cs:355:45:355:45 | x : String | Capture.cs:357:11:357:11 | access to parameter x : String | provenance | | | Capture.cs:357:11:357:11 | access to parameter x : String | Capture.cs:273:19:273:19 | x : String | provenance | | | GlobalDataFlow.cs:18:9:18:23 | access to field SinkField0 : String | GlobalDataFlow.cs:19:15:19:29 | access to field SinkField0 | provenance | | @@ -462,21 +466,20 @@ edges | GlobalDataFlow.cs:469:21:469:21 | s : String | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | provenance | | | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | GlobalDataFlow.cs:469:21:469:21 | s : String | provenance | | | GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | GlobalDataFlow.cs:466:53:466:55 | arg : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | provenance | | -| GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:31:497:32 | [post] access to local variable y1 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:36:497:37 | [post] access to local variable y2 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:497:42:497:43 | [post] access to local variable y3 : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:508:33:508:33 | [post] access to local variable x : SubSimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:20:515:20 | [post] access to parameter x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:515:25:515:25 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:527:20:527:20 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:528:20:528:20 | [post] access to local variable y : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:529:18:529:18 | [post] access to local variable z : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:538:20:538:21 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | GlobalDataFlow.cs:546:24:546:24 | [post] access to local variable x : SimpleClass [field field] : String | provenance | | +| GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | GlobalDataFlow.cs:491:15:491:16 | access to local variable x1 : SimpleClass [field field] : String | provenance | | | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | GlobalDataFlow.cs:492:15:492:16 | access to local variable x2 : SimpleClass [field field] : String | provenance | | @@ -509,10 +512,10 @@ edges | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | provenance | | | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | provenance | | | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | provenance | | -| GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Return] : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Reverse] : StringBuilder | provenance | | | GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | provenance | MaD:14 | | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | provenance | | -| GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Return] : StringBuilder | provenance | | +| GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Reverse] : StringBuilder | provenance | | | GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | provenance | MaD:16 | | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:31:21:31:22 | access to local variable sb : StringBuilder | provenance | | | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | GlobalDataFlowStringBuilder.cs:35:20:35:21 | access to local variable sb : StringBuilder | provenance | | @@ -716,11 +719,13 @@ nodes | Capture.cs:350:34:350:34 | a : (...) => ... [captured s] : String | semmle.label | a : (...) => ... [captured s] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | semmle.label | a : (...) => ... [captured sink39] : String | -| Capture.cs:350:34:350:34 | a [Return] : (...) => ... [captured sink40] : String | semmle.label | a [Return] : (...) => ... [captured sink40] : String | +| Capture.cs:350:34:350:34 | a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | a [Reverse] : (...) => ... [captured sink40] : String | | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | semmle.label | [post] access to parameter a : (...) => ... [captured sink40] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured s] : String | semmle.label | access to parameter a : (...) => ... [captured s] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | semmle.label | access to parameter a : (...) => ... [captured sink39] : String | | Capture.cs:352:9:352:9 | access to parameter a : (...) => ... [captured sink39] : String | semmle.label | access to parameter a : (...) => ... [captured sink39] : String | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | +| Capture.cs:352:9:352:9 | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | semmle.label | access to parameter a [Reverse] : (...) => ... [captured sink40] : String | | Capture.cs:355:45:355:45 | x : String | semmle.label | x : String | | Capture.cs:357:11:357:11 | access to parameter x : String | semmle.label | access to parameter x : String | | GlobalDataFlow.cs:18:9:18:23 | access to field SinkField0 : String | semmle.label | access to field SinkField0 : String | @@ -980,9 +985,8 @@ nodes | GlobalDataFlow.cs:469:32:469:32 | access to parameter s | semmle.label | access to parameter s | | GlobalDataFlow.cs:470:15:470:17 | access to parameter arg : String | semmle.label | access to parameter arg : String | | GlobalDataFlow.cs:473:28:473:41 | "taint source" : String | semmle.label | "taint source" : String | -| GlobalDataFlow.cs:481:41:481:42 | sc [Return] : SimpleClass [field field] : String | semmle.label | sc [Return] : SimpleClass [field field] : String | +| GlobalDataFlow.cs:481:41:481:42 | sc [Reverse] : SimpleClass [field field] : String | semmle.label | sc [Reverse] : SimpleClass [field field] : String | | GlobalDataFlow.cs:483:9:483:10 | [post] access to parameter sc : SimpleClass [field field] : String | semmle.label | [post] access to parameter sc : SimpleClass [field field] : String | -| GlobalDataFlow.cs:483:9:483:10 | access to parameter sc [Reverse] : SimpleClass [field field] : String | semmle.label | access to parameter sc [Reverse] : SimpleClass [field field] : String | | GlobalDataFlow.cs:483:20:483:33 | "taint source" : String | semmle.label | "taint source" : String | | GlobalDataFlow.cs:490:25:490:26 | [post] access to local variable x1 : SimpleClass [field field] : String | semmle.label | [post] access to local variable x1 : SimpleClass [field field] : String | | GlobalDataFlow.cs:490:30:490:31 | [post] access to local variable x2 : SimpleClass [field field] : String | semmle.label | [post] access to local variable x2 : SimpleClass [field field] : String | @@ -1027,11 +1031,11 @@ nodes | GlobalDataFlow.cs:556:27:556:27 | access to parameter e : null [element] : String | semmle.label | access to parameter e : null [element] : String | | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | semmle.label | delegate call : String | | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | semmle.label | access to local variable x : String | -| GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Return] : StringBuilder | semmle.label | sb [Return] : StringBuilder | +| GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Reverse] : StringBuilder | semmle.label | sb [Reverse] : StringBuilder | | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | semmle.label | s : String | | GlobalDataFlowStringBuilder.cs:19:9:19:10 | [post] access to parameter sb : StringBuilder | semmle.label | [post] access to parameter sb : StringBuilder | | GlobalDataFlowStringBuilder.cs:19:19:19:19 | access to parameter s : String | semmle.label | access to parameter s : String | -| GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Return] : StringBuilder | semmle.label | sb [Return] : StringBuilder | +| GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Reverse] : StringBuilder | semmle.label | sb [Reverse] : StringBuilder | | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | semmle.label | s : String | | GlobalDataFlowStringBuilder.cs:24:9:24:10 | [post] access to parameter sb : StringBuilder | semmle.label | [post] access to parameter sb : StringBuilder | | GlobalDataFlowStringBuilder.cs:24:19:24:26 | (...) ... : AppendInterpolatedStringHandler | semmle.label | (...) ... : AppendInterpolatedStringHandler | @@ -1136,8 +1140,8 @@ subpaths | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:298:26:298:26 | x : String | GlobalDataFlow.cs:301:16:301:41 | ... ? ... : ... : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:389:18:389:18 | access to parameter x : String | GlobalDataFlow.cs:300:27:300:28 | x0 : String | GlobalDataFlow.cs:300:33:300:34 | access to parameter x0 : String | GlobalDataFlow.cs:389:16:389:19 | delegate call : String | | GlobalDataFlow.cs:558:46:558:46 | access to local variable x : String | GlobalDataFlow.cs:81:79:81:79 | x : String | GlobalDataFlow.cs:81:84:81:84 | access to parameter x : String | GlobalDataFlow.cs:558:44:558:47 | delegate call : String | -| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Return] : StringBuilder | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | -| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Return] : StringBuilder | GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | +| GlobalDataFlowStringBuilder.cs:30:35:30:48 | "taint source" : String | GlobalDataFlowStringBuilder.cs:17:64:17:64 | s : String | GlobalDataFlowStringBuilder.cs:17:53:17:54 | sb [Reverse] : StringBuilder | GlobalDataFlowStringBuilder.cs:30:31:30:32 | [post] access to local variable sb : StringBuilder | +| GlobalDataFlowStringBuilder.cs:48:47:48:60 | "taint source" : String | GlobalDataFlowStringBuilder.cs:22:76:22:76 | s : String | GlobalDataFlowStringBuilder.cs:22:65:22:66 | sb [Reverse] : StringBuilder | GlobalDataFlowStringBuilder.cs:48:43:48:44 | [post] access to local variable sb : StringBuilder | | Splitting.cs:8:24:8:30 | [b (line 3): false] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): false] call to method Return : String | | Splitting.cs:8:24:8:30 | [b (line 3): true] access to parameter tainted : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:8:17:8:31 | [b (line 3): true] call to method Return : String | | Splitting.cs:20:29:20:29 | access to parameter s : String | Splitting.cs:16:26:16:26 | x : String | Splitting.cs:16:32:16:32 | access to parameter x : String | Splitting.cs:20:22:20:30 | call to method Return : String | diff --git a/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected b/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected index 41ea128902627..bce8e57541ffa 100644 --- a/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected +++ b/csharp/ql/test/library-tests/dataflow/tuples/Tuples.expected @@ -152,8 +152,8 @@ edges | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item1] : String | Tuples.cs:89:18:89:18 | access to local variable p | provenance | | | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple,Int32> [field Item2, field Item2] : String | Tuples.cs:87:18:87:35 | (..., ...) : ValueTuple [field Item2] : String | provenance | | -| Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | provenance | | -| Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | provenance | | +| Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | provenance | | +| Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | provenance | | | Tuples.cs:99:13:99:13 | access to local variable o : String | Tuples.cs:100:24:100:24 | access to local variable o : String | provenance | | | Tuples.cs:99:13:99:13 | access to local variable o : String | Tuples.cs:100:24:100:24 | access to local variable o : String | provenance | | | Tuples.cs:99:17:99:33 | call to method Source : String | Tuples.cs:99:13:99:13 | access to local variable o : String | provenance | | @@ -381,8 +381,8 @@ nodes | Tuples.cs:89:18:89:18 | access to local variable p | semmle.label | access to local variable p | | Tuples.cs:90:18:90:18 | access to local variable r | semmle.label | access to local variable r | | Tuples.cs:90:18:90:18 | access to local variable r | semmle.label | access to local variable r | -| Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | semmle.label | this [Return] : R1 [property i] : String | -| Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | semmle.label | this [Return] : R1 [property i] : String | +| Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | semmle.label | this [Reverse] : R1 [property i] : String | +| Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | semmle.label | this [Reverse] : R1 [property i] : String | | Tuples.cs:95:22:95:22 | i : String | semmle.label | i : String | | Tuples.cs:95:22:95:22 | i : String | semmle.label | i : String | | Tuples.cs:99:13:99:13 | access to local variable o : String | semmle.label | access to local variable o : String | @@ -440,8 +440,8 @@ nodes | Tuples.cs:134:14:134:15 | access to local variable y4 | semmle.label | access to local variable y4 | | Tuples.cs:134:14:134:15 | access to local variable y4 | semmle.label | access to local variable y4 | subpaths -| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | -| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Return] : R1 [property i] : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | +| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | +| Tuples.cs:100:24:100:24 | access to local variable o : String | Tuples.cs:95:22:95:22 | i : String | Tuples.cs:95:12:95:13 | this [Reverse] : R1 [property i] : String | Tuples.cs:100:17:100:28 | object creation of type R1 : R1 [property i] : String | testFailures #select | Tuples.cs:12:14:12:14 | access to local variable a | Tuples.cs:7:18:7:34 | call to method Source : Object | Tuples.cs:12:14:12:14 | access to local variable a | $@ | Tuples.cs:7:18:7:34 | call to method Source : Object | call to method Source : Object | diff --git a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected index 34703cdeef4e0..2d7c9991a919a 100644 --- a/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected +++ b/go/ql/test/experimental/CWE-522-DecompressionBombs/DecompressionBombs.expected @@ -48,24 +48,43 @@ | test.go:629:2:629:8 | tarRead | test.go:93:5:93:16 | selection of Body | test.go:629:2:629:8 | tarRead | This decompression is $@. | test.go:93:5:93:16 | selection of Body | decompressing compressed data without managing output size | edges | test.go:59:16:59:44 | call to FormValue | test.go:128:20:128:27 | definition of filename | provenance | Src:MaD:2 | +| test.go:60:15:60:26 | selection of Body | test.go:60:15:60:26 | selection of Body | provenance | Src:MaD:1 | | test.go:60:15:60:26 | selection of Body | test.go:158:19:158:22 | definition of file | provenance | Src:MaD:1 | +| test.go:61:24:61:35 | selection of Body | test.go:61:24:61:35 | selection of Body | provenance | Src:MaD:1 | | test.go:61:24:61:35 | selection of Body | test.go:169:28:169:31 | definition of file | provenance | Src:MaD:1 | +| test.go:62:13:62:24 | selection of Body | test.go:62:13:62:24 | selection of Body | provenance | Src:MaD:1 | | test.go:62:13:62:24 | selection of Body | test.go:181:17:181:20 | definition of file | provenance | Src:MaD:1 | +| test.go:64:8:64:19 | selection of Body | test.go:64:8:64:19 | selection of Body | provenance | Src:MaD:1 | | test.go:64:8:64:19 | selection of Body | test.go:208:12:208:15 | definition of file | provenance | Src:MaD:1 | +| test.go:66:8:66:19 | selection of Body | test.go:66:8:66:19 | selection of Body | provenance | Src:MaD:1 | | test.go:66:8:66:19 | selection of Body | test.go:233:12:233:15 | definition of file | provenance | Src:MaD:1 | +| test.go:68:17:68:28 | selection of Body | test.go:68:17:68:28 | selection of Body | provenance | Src:MaD:1 | | test.go:68:17:68:28 | selection of Body | test.go:258:21:258:24 | definition of file | provenance | Src:MaD:1 | +| test.go:70:13:70:24 | selection of Body | test.go:70:13:70:24 | selection of Body | provenance | Src:MaD:1 | | test.go:70:13:70:24 | selection of Body | test.go:283:17:283:20 | definition of file | provenance | Src:MaD:1 | +| test.go:72:16:72:27 | selection of Body | test.go:72:16:72:27 | selection of Body | provenance | Src:MaD:1 | | test.go:72:16:72:27 | selection of Body | test.go:308:20:308:23 | definition of file | provenance | Src:MaD:1 | +| test.go:74:7:74:18 | selection of Body | test.go:74:7:74:18 | selection of Body | provenance | Src:MaD:1 | | test.go:74:7:74:18 | selection of Body | test.go:333:11:333:14 | definition of file | provenance | Src:MaD:1 | +| test.go:76:9:76:20 | selection of Body | test.go:76:9:76:20 | selection of Body | provenance | Src:MaD:1 | | test.go:76:9:76:20 | selection of Body | test.go:358:13:358:16 | definition of file | provenance | Src:MaD:1 | +| test.go:78:18:78:29 | selection of Body | test.go:78:18:78:29 | selection of Body | provenance | Src:MaD:1 | | test.go:78:18:78:29 | selection of Body | test.go:384:22:384:25 | definition of file | provenance | Src:MaD:1 | +| test.go:80:5:80:16 | selection of Body | test.go:80:5:80:16 | selection of Body | provenance | Src:MaD:1 | | test.go:80:5:80:16 | selection of Body | test.go:412:9:412:12 | definition of file | provenance | Src:MaD:1 | +| test.go:82:7:82:18 | selection of Body | test.go:82:7:82:18 | selection of Body | provenance | Src:MaD:1 | | test.go:82:7:82:18 | selection of Body | test.go:447:11:447:14 | definition of file | provenance | Src:MaD:1 | +| test.go:84:15:84:26 | selection of Body | test.go:84:15:84:26 | selection of Body | provenance | Src:MaD:1 | | test.go:84:15:84:26 | selection of Body | test.go:440:19:440:21 | definition of src | provenance | Src:MaD:1 | +| test.go:85:16:85:27 | selection of Body | test.go:85:16:85:27 | selection of Body | provenance | Src:MaD:1 | | test.go:85:16:85:27 | selection of Body | test.go:472:20:472:23 | definition of file | provenance | Src:MaD:1 | +| test.go:87:16:87:27 | selection of Body | test.go:87:16:87:27 | selection of Body | provenance | Src:MaD:1 | | test.go:87:16:87:27 | selection of Body | test.go:499:20:499:23 | definition of file | provenance | Src:MaD:1 | +| test.go:89:17:89:28 | selection of Body | test.go:89:17:89:28 | selection of Body | provenance | Src:MaD:1 | | test.go:89:17:89:28 | selection of Body | test.go:526:21:526:24 | definition of file | provenance | Src:MaD:1 | +| test.go:91:15:91:26 | selection of Body | test.go:91:15:91:26 | selection of Body | provenance | Src:MaD:1 | | test.go:91:15:91:26 | selection of Body | test.go:555:19:555:22 | definition of file | provenance | Src:MaD:1 | +| test.go:93:5:93:16 | selection of Body | test.go:93:5:93:16 | selection of Body | provenance | Src:MaD:1 | | test.go:93:5:93:16 | selection of Body | test.go:580:9:580:12 | definition of file | provenance | Src:MaD:1 | | test.go:128:20:128:27 | definition of filename | test.go:130:33:130:40 | filename | provenance | | | test.go:128:20:128:27 | definition of filename | test.go:143:51:143:58 | filename | provenance | | @@ -77,6 +96,7 @@ edges | test.go:143:51:143:58 | filename | test.go:143:2:143:59 | ... := ...[0] | provenance | Config | | test.go:145:12:145:12 | f | test.go:145:12:145:19 | call to Open | provenance | Config | | test.go:145:12:145:19 | call to Open | test.go:147:37:147:38 | rc | provenance | | +| test.go:158:19:158:22 | definition of file | test.go:158:19:158:22 | definition of file [Reverse] | provenance | | | test.go:158:19:158:22 | definition of file | test.go:159:25:159:28 | file | provenance | | | test.go:159:2:159:29 | ... := ...[0] | test.go:160:48:160:52 | file1 | provenance | | | test.go:159:25:159:28 | file | test.go:159:2:159:29 | ... := ...[0] | provenance | MaD:6 | @@ -85,6 +105,7 @@ edges | test.go:160:48:160:52 | file1 | test.go:160:32:160:53 | call to NewReader | provenance | MaD:5 | | test.go:163:3:163:36 | ... := ...[0] | test.go:164:36:164:51 | fileReaderCloser | provenance | | | test.go:163:26:163:29 | file | test.go:163:3:163:36 | ... := ...[0] | provenance | MaD:4 | +| test.go:169:28:169:31 | definition of file | test.go:169:28:169:31 | definition of file [Reverse] | provenance | | | test.go:169:28:169:31 | definition of file | test.go:170:25:170:28 | file | provenance | | | test.go:170:2:170:29 | ... := ...[0] | test.go:171:57:171:61 | file2 | provenance | | | test.go:170:25:170:28 | file | test.go:170:2:170:29 | ... := ...[0] | provenance | MaD:6 | @@ -94,132 +115,217 @@ edges | test.go:175:26:175:29 | file | test.go:175:26:175:36 | call to Open | provenance | Config | | test.go:175:26:175:36 | call to Open | test.go:176:36:176:51 | fileReaderCloser | provenance | | | test.go:181:17:181:20 | definition of file | test.go:184:41:184:44 | file | provenance | | +| test.go:181:17:181:20 | definition of file | test.go:184:41:184:44 | file [Reverse] | provenance | | | test.go:184:2:184:73 | ... := ...[0] | test.go:186:2:186:12 | bzip2Reader | provenance | | | test.go:184:2:184:73 | ... := ...[0] | test.go:187:26:187:36 | bzip2Reader | provenance | | | test.go:184:41:184:44 | file | test.go:184:2:184:73 | ... := ...[0] | provenance | Config | +| test.go:184:41:184:44 | file [Reverse] | test.go:181:17:181:20 | definition of file [Reverse] | provenance | | +| test.go:187:2:187:8 | definition of tarRead | test.go:189:18:189:24 | tarRead | provenance | | | test.go:187:12:187:37 | call to NewReader | test.go:189:18:189:24 | tarRead | provenance | | | test.go:187:26:187:36 | bzip2Reader | test.go:187:12:187:37 | call to NewReader | provenance | MaD:3 | +| test.go:189:18:189:24 | tarRead | test.go:187:2:187:8 | definition of tarRead | provenance | | | test.go:189:18:189:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:208:12:208:15 | definition of file | test.go:211:33:211:36 | file | provenance | | +| test.go:208:12:208:15 | definition of file | test.go:211:33:211:36 | file [Reverse] | provenance | | | test.go:211:17:211:37 | call to NewReader | test.go:213:2:213:12 | bzip2Reader | provenance | | | test.go:211:17:211:37 | call to NewReader | test.go:214:26:214:36 | bzip2Reader | provenance | | | test.go:211:33:211:36 | file | test.go:211:17:211:37 | call to NewReader | provenance | Config | +| test.go:211:33:211:36 | file [Reverse] | test.go:208:12:208:15 | definition of file [Reverse] | provenance | | +| test.go:214:2:214:8 | definition of tarRead | test.go:216:18:216:24 | tarRead | provenance | | | test.go:214:12:214:37 | call to NewReader | test.go:216:18:216:24 | tarRead | provenance | | | test.go:214:26:214:36 | bzip2Reader | test.go:214:12:214:37 | call to NewReader | provenance | MaD:3 | +| test.go:216:18:216:24 | tarRead | test.go:214:2:214:8 | definition of tarRead | provenance | | | test.go:216:18:216:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:233:12:233:15 | definition of file | test.go:236:33:236:36 | file | provenance | | +| test.go:233:12:233:15 | definition of file | test.go:236:33:236:36 | file [Reverse] | provenance | | | test.go:236:17:236:37 | call to NewReader | test.go:238:2:238:12 | flateReader | provenance | | | test.go:236:17:236:37 | call to NewReader | test.go:239:26:239:36 | flateReader | provenance | | | test.go:236:33:236:36 | file | test.go:236:17:236:37 | call to NewReader | provenance | Config | +| test.go:236:33:236:36 | file [Reverse] | test.go:233:12:233:15 | definition of file [Reverse] | provenance | | +| test.go:239:2:239:8 | definition of tarRead | test.go:241:18:241:24 | tarRead | provenance | | | test.go:239:12:239:37 | call to NewReader | test.go:241:18:241:24 | tarRead | provenance | | | test.go:239:26:239:36 | flateReader | test.go:239:12:239:37 | call to NewReader | provenance | MaD:3 | +| test.go:241:18:241:24 | tarRead | test.go:239:2:239:8 | definition of tarRead | provenance | | | test.go:241:18:241:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:258:21:258:24 | definition of file | test.go:261:42:261:45 | file | provenance | | +| test.go:258:21:258:24 | definition of file | test.go:261:42:261:45 | file [Reverse] | provenance | | | test.go:261:17:261:46 | call to NewReader | test.go:263:2:263:12 | flateReader | provenance | | | test.go:261:17:261:46 | call to NewReader | test.go:264:26:264:36 | flateReader | provenance | | | test.go:261:42:261:45 | file | test.go:261:17:261:46 | call to NewReader | provenance | Config | +| test.go:261:42:261:45 | file [Reverse] | test.go:258:21:258:24 | definition of file [Reverse] | provenance | | +| test.go:264:2:264:8 | definition of tarRead | test.go:266:18:266:24 | tarRead | provenance | | | test.go:264:12:264:37 | call to NewReader | test.go:266:18:266:24 | tarRead | provenance | | | test.go:264:26:264:36 | flateReader | test.go:264:12:264:37 | call to NewReader | provenance | MaD:3 | +| test.go:266:18:266:24 | tarRead | test.go:264:2:264:8 | definition of tarRead | provenance | | | test.go:266:18:266:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:283:17:283:20 | definition of file | test.go:286:41:286:44 | file | provenance | | +| test.go:283:17:283:20 | definition of file | test.go:286:41:286:44 | file [Reverse] | provenance | | | test.go:286:2:286:73 | ... := ...[0] | test.go:288:2:288:12 | flateReader | provenance | | | test.go:286:2:286:73 | ... := ...[0] | test.go:289:26:289:36 | flateReader | provenance | | | test.go:286:41:286:44 | file | test.go:286:2:286:73 | ... := ...[0] | provenance | Config | +| test.go:286:41:286:44 | file [Reverse] | test.go:283:17:283:20 | definition of file [Reverse] | provenance | | +| test.go:289:2:289:8 | definition of tarRead | test.go:291:18:291:24 | tarRead | provenance | | | test.go:289:12:289:37 | call to NewReader | test.go:291:18:291:24 | tarRead | provenance | | | test.go:289:26:289:36 | flateReader | test.go:289:12:289:37 | call to NewReader | provenance | MaD:3 | +| test.go:291:18:291:24 | tarRead | test.go:289:2:289:8 | definition of tarRead | provenance | | | test.go:291:18:291:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:308:20:308:23 | definition of file | test.go:311:43:311:46 | file | provenance | | +| test.go:308:20:308:23 | definition of file | test.go:311:43:311:46 | file [Reverse] | provenance | | | test.go:311:2:311:47 | ... := ...[0] | test.go:313:2:313:11 | zlibReader | provenance | | | test.go:311:2:311:47 | ... := ...[0] | test.go:314:26:314:35 | zlibReader | provenance | | | test.go:311:43:311:46 | file | test.go:311:2:311:47 | ... := ...[0] | provenance | Config | +| test.go:311:43:311:46 | file [Reverse] | test.go:308:20:308:23 | definition of file [Reverse] | provenance | | +| test.go:314:2:314:8 | definition of tarRead | test.go:316:18:316:24 | tarRead | provenance | | | test.go:314:12:314:36 | call to NewReader | test.go:316:18:316:24 | tarRead | provenance | | | test.go:314:26:314:35 | zlibReader | test.go:314:12:314:36 | call to NewReader | provenance | MaD:3 | +| test.go:316:18:316:24 | tarRead | test.go:314:2:314:8 | definition of tarRead | provenance | | | test.go:316:18:316:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:333:11:333:14 | definition of file | test.go:336:34:336:37 | file | provenance | | +| test.go:333:11:333:14 | definition of file | test.go:336:34:336:37 | file [Reverse] | provenance | | | test.go:336:2:336:38 | ... := ...[0] | test.go:338:2:338:11 | zlibReader | provenance | | | test.go:336:2:336:38 | ... := ...[0] | test.go:339:26:339:35 | zlibReader | provenance | | | test.go:336:34:336:37 | file | test.go:336:2:336:38 | ... := ...[0] | provenance | Config | +| test.go:336:34:336:37 | file [Reverse] | test.go:333:11:333:14 | definition of file [Reverse] | provenance | | +| test.go:339:2:339:8 | definition of tarRead | test.go:341:18:341:24 | tarRead | provenance | | | test.go:339:12:339:36 | call to NewReader | test.go:341:18:341:24 | tarRead | provenance | | | test.go:339:26:339:35 | zlibReader | test.go:339:12:339:36 | call to NewReader | provenance | MaD:3 | +| test.go:341:18:341:24 | tarRead | test.go:339:2:339:8 | definition of tarRead | provenance | | | test.go:341:18:341:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:358:13:358:16 | definition of file | test.go:361:35:361:38 | file | provenance | | +| test.go:358:13:358:16 | definition of file | test.go:361:35:361:38 | file [Reverse] | provenance | | | test.go:361:18:361:39 | call to NewReader | test.go:363:2:363:13 | snappyReader | provenance | | | test.go:361:18:361:39 | call to NewReader | test.go:364:2:364:13 | snappyReader | provenance | | | test.go:361:18:361:39 | call to NewReader | test.go:365:26:365:37 | snappyReader | provenance | | | test.go:361:35:361:38 | file | test.go:361:18:361:39 | call to NewReader | provenance | Config | +| test.go:361:35:361:38 | file [Reverse] | test.go:358:13:358:16 | definition of file [Reverse] | provenance | | +| test.go:365:2:365:8 | definition of tarRead | test.go:367:18:367:24 | tarRead | provenance | | | test.go:365:12:365:38 | call to NewReader | test.go:367:18:367:24 | tarRead | provenance | | | test.go:365:26:365:37 | snappyReader | test.go:365:12:365:38 | call to NewReader | provenance | MaD:3 | +| test.go:367:18:367:24 | tarRead | test.go:365:2:365:8 | definition of tarRead | provenance | | | test.go:367:18:367:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:384:22:384:25 | definition of file | test.go:387:44:387:47 | file | provenance | | +| test.go:384:22:384:25 | definition of file | test.go:387:44:387:47 | file [Reverse] | provenance | | | test.go:387:18:387:48 | call to NewReader | test.go:389:2:389:13 | snappyReader | provenance | | | test.go:387:18:387:48 | call to NewReader | test.go:391:2:391:13 | snappyReader | provenance | | | test.go:387:18:387:48 | call to NewReader | test.go:392:2:392:13 | snappyReader | provenance | | | test.go:387:18:387:48 | call to NewReader | test.go:393:26:393:37 | snappyReader | provenance | | | test.go:387:44:387:47 | file | test.go:387:18:387:48 | call to NewReader | provenance | Config | +| test.go:387:44:387:47 | file [Reverse] | test.go:384:22:384:25 | definition of file [Reverse] | provenance | | +| test.go:393:2:393:8 | definition of tarRead | test.go:395:18:395:24 | tarRead | provenance | | | test.go:393:12:393:38 | call to NewReader | test.go:395:18:395:24 | tarRead | provenance | | | test.go:393:26:393:37 | snappyReader | test.go:393:12:393:38 | call to NewReader | provenance | MaD:3 | +| test.go:395:18:395:24 | tarRead | test.go:393:2:393:8 | definition of tarRead | provenance | | | test.go:395:18:395:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:412:9:412:12 | definition of file | test.go:415:27:415:30 | file | provenance | | +| test.go:412:9:412:12 | definition of file | test.go:415:27:415:30 | file [Reverse] | provenance | | | test.go:415:14:415:31 | call to NewReader | test.go:417:2:417:9 | s2Reader | provenance | | | test.go:415:14:415:31 | call to NewReader | test.go:418:2:418:9 | s2Reader | provenance | | | test.go:415:14:415:31 | call to NewReader | test.go:420:2:420:9 | s2Reader | provenance | | | test.go:415:14:415:31 | call to NewReader | test.go:421:26:421:33 | s2Reader | provenance | | | test.go:415:27:415:30 | file | test.go:415:14:415:31 | call to NewReader | provenance | Config | +| test.go:415:27:415:30 | file [Reverse] | test.go:412:9:412:12 | definition of file [Reverse] | provenance | | +| test.go:421:2:421:8 | definition of tarRead | test.go:423:18:423:24 | tarRead | provenance | | | test.go:421:12:421:34 | call to NewReader | test.go:423:18:423:24 | tarRead | provenance | | | test.go:421:26:421:33 | s2Reader | test.go:421:12:421:34 | call to NewReader | provenance | MaD:3 | +| test.go:423:18:423:24 | tarRead | test.go:421:2:421:8 | definition of tarRead | provenance | | | test.go:423:18:423:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:440:19:440:21 | definition of src | test.go:441:34:441:36 | src | provenance | | +| test.go:440:19:440:21 | definition of src | test.go:441:34:441:36 | src [Reverse] | provenance | | | test.go:441:2:441:37 | ... := ...[0] | test.go:444:12:444:32 | type conversion | provenance | | | test.go:441:34:441:36 | src | test.go:441:2:441:37 | ... := ...[0] | provenance | Config | +| test.go:441:34:441:36 | src [Reverse] | test.go:440:19:440:21 | definition of src [Reverse] | provenance | | | test.go:444:12:444:32 | type conversion | test.go:445:23:445:28 | newSrc | provenance | | | test.go:447:11:447:14 | definition of file | test.go:450:34:450:37 | file | provenance | | +| test.go:447:11:447:14 | definition of file | test.go:450:34:450:37 | file [Reverse] | provenance | | | test.go:450:2:450:38 | ... := ...[0] | test.go:452:2:452:11 | gzipReader | provenance | | | test.go:450:2:450:38 | ... := ...[0] | test.go:453:26:453:35 | gzipReader | provenance | | | test.go:450:34:450:37 | file | test.go:450:2:450:38 | ... := ...[0] | provenance | Config | +| test.go:450:34:450:37 | file [Reverse] | test.go:447:11:447:14 | definition of file [Reverse] | provenance | | +| test.go:453:2:453:8 | definition of tarRead | test.go:455:18:455:24 | tarRead | provenance | | | test.go:453:12:453:36 | call to NewReader | test.go:455:18:455:24 | tarRead | provenance | | | test.go:453:26:453:35 | gzipReader | test.go:453:12:453:36 | call to NewReader | provenance | MaD:3 | +| test.go:455:18:455:24 | tarRead | test.go:453:2:453:8 | definition of tarRead | provenance | | | test.go:455:18:455:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:472:20:472:23 | definition of file | test.go:475:43:475:46 | file | provenance | | +| test.go:472:20:472:23 | definition of file | test.go:475:43:475:46 | file [Reverse] | provenance | | | test.go:475:2:475:47 | ... := ...[0] | test.go:477:2:477:11 | gzipReader | provenance | | | test.go:475:2:475:47 | ... := ...[0] | test.go:479:2:479:11 | gzipReader | provenance | | | test.go:475:2:475:47 | ... := ...[0] | test.go:480:26:480:35 | gzipReader | provenance | | | test.go:475:43:475:46 | file | test.go:475:2:475:47 | ... := ...[0] | provenance | Config | +| test.go:475:43:475:46 | file [Reverse] | test.go:472:20:472:23 | definition of file [Reverse] | provenance | | +| test.go:480:2:480:8 | definition of tarRead | test.go:482:18:482:24 | tarRead | provenance | | | test.go:480:12:480:36 | call to NewReader | test.go:482:18:482:24 | tarRead | provenance | | | test.go:480:26:480:35 | gzipReader | test.go:480:12:480:36 | call to NewReader | provenance | MaD:3 | +| test.go:482:18:482:24 | tarRead | test.go:480:2:480:8 | definition of tarRead | provenance | | | test.go:482:18:482:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:499:20:499:23 | definition of file | test.go:502:45:502:48 | file | provenance | | +| test.go:499:20:499:23 | definition of file | test.go:502:45:502:48 | file [Reverse] | provenance | | | test.go:502:2:502:49 | ... := ...[0] | test.go:504:2:504:12 | pgzipReader | provenance | | | test.go:502:2:502:49 | ... := ...[0] | test.go:506:2:506:12 | pgzipReader | provenance | | | test.go:502:2:502:49 | ... := ...[0] | test.go:507:26:507:36 | pgzipReader | provenance | | | test.go:502:45:502:48 | file | test.go:502:2:502:49 | ... := ...[0] | provenance | Config | +| test.go:502:45:502:48 | file [Reverse] | test.go:499:20:499:23 | definition of file [Reverse] | provenance | | +| test.go:507:2:507:8 | definition of tarRead | test.go:509:18:509:24 | tarRead | provenance | | | test.go:507:12:507:37 | call to NewReader | test.go:509:18:509:24 | tarRead | provenance | | | test.go:507:26:507:36 | pgzipReader | test.go:507:12:507:37 | call to NewReader | provenance | MaD:3 | +| test.go:509:18:509:24 | tarRead | test.go:507:2:507:8 | definition of tarRead | provenance | | | test.go:509:18:509:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:526:21:526:24 | definition of file | test.go:529:43:529:46 | file | provenance | | +| test.go:526:21:526:24 | definition of file | test.go:529:43:529:46 | file [Reverse] | provenance | | | test.go:529:2:529:47 | ... := ...[0] | test.go:531:2:531:11 | zstdReader | provenance | | | test.go:529:2:529:47 | ... := ...[0] | test.go:533:2:533:11 | zstdReader | provenance | | | test.go:529:2:529:47 | ... := ...[0] | test.go:535:2:535:11 | zstdReader | provenance | | | test.go:529:2:529:47 | ... := ...[0] | test.go:536:26:536:35 | zstdReader | provenance | | | test.go:529:43:529:46 | file | test.go:529:2:529:47 | ... := ...[0] | provenance | Config | +| test.go:529:43:529:46 | file [Reverse] | test.go:526:21:526:24 | definition of file [Reverse] | provenance | | +| test.go:536:2:536:8 | definition of tarRead | test.go:538:18:538:24 | tarRead | provenance | | | test.go:536:12:536:36 | call to NewReader | test.go:538:18:538:24 | tarRead | provenance | | | test.go:536:26:536:35 | zstdReader | test.go:536:12:536:36 | call to NewReader | provenance | MaD:3 | +| test.go:538:18:538:24 | tarRead | test.go:536:2:536:8 | definition of tarRead | provenance | | | test.go:538:18:538:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:555:19:555:22 | definition of file | test.go:558:38:558:41 | file | provenance | | +| test.go:555:19:555:22 | definition of file | test.go:558:38:558:41 | file [Reverse] | provenance | | | test.go:558:16:558:42 | call to NewReader | test.go:560:2:560:11 | zstdReader | provenance | | | test.go:558:16:558:42 | call to NewReader | test.go:561:26:561:35 | zstdReader | provenance | | | test.go:558:38:558:41 | file | test.go:558:16:558:42 | call to NewReader | provenance | Config | +| test.go:558:38:558:41 | file [Reverse] | test.go:555:19:555:22 | definition of file [Reverse] | provenance | | +| test.go:561:2:561:8 | definition of tarRead | test.go:563:18:563:24 | tarRead | provenance | | | test.go:561:12:561:36 | call to NewReader | test.go:563:18:563:24 | tarRead | provenance | | | test.go:561:26:561:35 | zstdReader | test.go:561:12:561:36 | call to NewReader | provenance | MaD:3 | +| test.go:563:18:563:24 | tarRead | test.go:561:2:561:8 | definition of tarRead | provenance | | | test.go:563:18:563:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | | test.go:580:9:580:12 | definition of file | test.go:583:30:583:33 | file | provenance | | +| test.go:580:9:580:12 | definition of file | test.go:583:30:583:33 | file [Reverse] | provenance | | | test.go:583:2:583:34 | ... := ...[0] | test.go:585:2:585:9 | xzReader | provenance | | | test.go:583:2:583:34 | ... := ...[0] | test.go:586:26:586:33 | xzReader | provenance | | | test.go:583:30:583:33 | file | test.go:583:2:583:34 | ... := ...[0] | provenance | Config | +| test.go:583:30:583:33 | file [Reverse] | test.go:580:9:580:12 | definition of file [Reverse] | provenance | | +| test.go:586:2:586:8 | definition of tarRead | test.go:589:18:589:24 | tarRead | provenance | | +| test.go:586:2:586:8 | definition of tarRead | test.go:590:19:590:25 | tarRead | provenance | | +| test.go:586:2:586:8 | definition of tarRead | test.go:591:22:591:28 | tarRead | provenance | | +| test.go:586:2:586:8 | definition of tarRead | test.go:592:20:592:26 | tarRead | provenance | | | test.go:586:12:586:34 | call to NewReader | test.go:589:18:589:24 | tarRead | provenance | | | test.go:586:12:586:34 | call to NewReader | test.go:590:19:590:25 | tarRead | provenance | | +| test.go:586:12:586:34 | call to NewReader | test.go:591:22:591:28 | tarRead | provenance | | +| test.go:586:12:586:34 | call to NewReader | test.go:592:20:592:26 | tarRead | provenance | | | test.go:586:26:586:33 | xzReader | test.go:586:12:586:34 | call to NewReader | provenance | MaD:3 | +| test.go:589:18:589:24 | tarRead | test.go:586:2:586:8 | definition of tarRead | provenance | | | test.go:589:18:589:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | provenance | | +| test.go:590:19:590:25 | tarRead | test.go:586:2:586:8 | definition of tarRead | provenance | | | test.go:590:19:590:25 | tarRead | test.go:627:23:627:29 | definition of tarRead | provenance | | +| test.go:591:22:591:28 | tarRead | test.go:586:2:586:8 | definition of tarRead | provenance | | +| test.go:591:22:591:28 | tarRead | test.go:642:26:642:32 | definition of tarRead | provenance | | +| test.go:592:20:592:26 | tarRead | test.go:586:2:586:8 | definition of tarRead | provenance | | +| test.go:592:20:592:26 | tarRead | test.go:633:24:633:30 | definition of tarRead | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | +| test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | provenance | | | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | @@ -229,7 +335,10 @@ edges | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | | test.go:611:22:611:28 | definition of tarRead | test.go:621:25:621:31 | tarRead | provenance | | +| test.go:627:23:627:29 | definition of tarRead | test.go:627:23:627:29 | definition of tarRead [Reverse] | provenance | | | test.go:627:23:627:29 | definition of tarRead | test.go:629:2:629:8 | tarRead | provenance | | +| test.go:633:24:633:30 | definition of tarRead | test.go:633:24:633:30 | definition of tarRead [Reverse] | provenance | | +| test.go:642:26:642:32 | definition of tarRead | test.go:642:26:642:32 | definition of tarRead [Reverse] | provenance | | models | 1 | Source: net/http; Request; true; Body; ; ; ; remote; manual | | 2 | Source: net/http; Request; true; FormValue; ; ; ReturnValue; remote; manual | @@ -270,6 +379,7 @@ nodes | test.go:145:12:145:19 | call to Open | semmle.label | call to Open | | test.go:147:37:147:38 | rc | semmle.label | rc | | test.go:158:19:158:22 | definition of file | semmle.label | definition of file | +| test.go:158:19:158:22 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:159:2:159:29 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:159:25:159:28 | file | semmle.label | file | | test.go:160:2:160:69 | ... := ...[0] | semmle.label | ... := ...[0] | @@ -279,6 +389,7 @@ nodes | test.go:163:26:163:29 | file | semmle.label | file | | test.go:164:36:164:51 | fileReaderCloser | semmle.label | fileReaderCloser | | test.go:169:28:169:31 | definition of file | semmle.label | definition of file | +| test.go:169:28:169:31 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:170:2:170:29 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:170:25:170:28 | file | semmle.label | file | | test.go:171:2:171:78 | ... := ...[0] | semmle.label | ... := ...[0] | @@ -288,132 +399,184 @@ nodes | test.go:175:26:175:36 | call to Open | semmle.label | call to Open | | test.go:176:36:176:51 | fileReaderCloser | semmle.label | fileReaderCloser | | test.go:181:17:181:20 | definition of file | semmle.label | definition of file | +| test.go:181:17:181:20 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:184:2:184:73 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:184:41:184:44 | file | semmle.label | file | +| test.go:184:41:184:44 | file [Reverse] | semmle.label | file [Reverse] | | test.go:186:2:186:12 | bzip2Reader | semmle.label | bzip2Reader | +| test.go:187:2:187:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:187:12:187:37 | call to NewReader | semmle.label | call to NewReader | | test.go:187:26:187:36 | bzip2Reader | semmle.label | bzip2Reader | | test.go:189:18:189:24 | tarRead | semmle.label | tarRead | | test.go:208:12:208:15 | definition of file | semmle.label | definition of file | +| test.go:208:12:208:15 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:211:17:211:37 | call to NewReader | semmle.label | call to NewReader | | test.go:211:33:211:36 | file | semmle.label | file | +| test.go:211:33:211:36 | file [Reverse] | semmle.label | file [Reverse] | | test.go:213:2:213:12 | bzip2Reader | semmle.label | bzip2Reader | +| test.go:214:2:214:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:214:12:214:37 | call to NewReader | semmle.label | call to NewReader | | test.go:214:26:214:36 | bzip2Reader | semmle.label | bzip2Reader | | test.go:216:18:216:24 | tarRead | semmle.label | tarRead | | test.go:233:12:233:15 | definition of file | semmle.label | definition of file | +| test.go:233:12:233:15 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:236:17:236:37 | call to NewReader | semmle.label | call to NewReader | | test.go:236:33:236:36 | file | semmle.label | file | +| test.go:236:33:236:36 | file [Reverse] | semmle.label | file [Reverse] | | test.go:238:2:238:12 | flateReader | semmle.label | flateReader | +| test.go:239:2:239:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:239:12:239:37 | call to NewReader | semmle.label | call to NewReader | | test.go:239:26:239:36 | flateReader | semmle.label | flateReader | | test.go:241:18:241:24 | tarRead | semmle.label | tarRead | | test.go:258:21:258:24 | definition of file | semmle.label | definition of file | +| test.go:258:21:258:24 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:261:17:261:46 | call to NewReader | semmle.label | call to NewReader | | test.go:261:42:261:45 | file | semmle.label | file | +| test.go:261:42:261:45 | file [Reverse] | semmle.label | file [Reverse] | | test.go:263:2:263:12 | flateReader | semmle.label | flateReader | +| test.go:264:2:264:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:264:12:264:37 | call to NewReader | semmle.label | call to NewReader | | test.go:264:26:264:36 | flateReader | semmle.label | flateReader | | test.go:266:18:266:24 | tarRead | semmle.label | tarRead | | test.go:283:17:283:20 | definition of file | semmle.label | definition of file | +| test.go:283:17:283:20 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:286:2:286:73 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:286:41:286:44 | file | semmle.label | file | +| test.go:286:41:286:44 | file [Reverse] | semmle.label | file [Reverse] | | test.go:288:2:288:12 | flateReader | semmle.label | flateReader | +| test.go:289:2:289:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:289:12:289:37 | call to NewReader | semmle.label | call to NewReader | | test.go:289:26:289:36 | flateReader | semmle.label | flateReader | | test.go:291:18:291:24 | tarRead | semmle.label | tarRead | | test.go:308:20:308:23 | definition of file | semmle.label | definition of file | +| test.go:308:20:308:23 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:311:2:311:47 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:311:43:311:46 | file | semmle.label | file | +| test.go:311:43:311:46 | file [Reverse] | semmle.label | file [Reverse] | | test.go:313:2:313:11 | zlibReader | semmle.label | zlibReader | +| test.go:314:2:314:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:314:12:314:36 | call to NewReader | semmle.label | call to NewReader | | test.go:314:26:314:35 | zlibReader | semmle.label | zlibReader | | test.go:316:18:316:24 | tarRead | semmle.label | tarRead | | test.go:333:11:333:14 | definition of file | semmle.label | definition of file | +| test.go:333:11:333:14 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:336:2:336:38 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:336:34:336:37 | file | semmle.label | file | +| test.go:336:34:336:37 | file [Reverse] | semmle.label | file [Reverse] | | test.go:338:2:338:11 | zlibReader | semmle.label | zlibReader | +| test.go:339:2:339:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:339:12:339:36 | call to NewReader | semmle.label | call to NewReader | | test.go:339:26:339:35 | zlibReader | semmle.label | zlibReader | | test.go:341:18:341:24 | tarRead | semmle.label | tarRead | | test.go:358:13:358:16 | definition of file | semmle.label | definition of file | +| test.go:358:13:358:16 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:361:18:361:39 | call to NewReader | semmle.label | call to NewReader | | test.go:361:35:361:38 | file | semmle.label | file | +| test.go:361:35:361:38 | file [Reverse] | semmle.label | file [Reverse] | | test.go:363:2:363:13 | snappyReader | semmle.label | snappyReader | | test.go:364:2:364:13 | snappyReader | semmle.label | snappyReader | +| test.go:365:2:365:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:365:12:365:38 | call to NewReader | semmle.label | call to NewReader | | test.go:365:26:365:37 | snappyReader | semmle.label | snappyReader | | test.go:367:18:367:24 | tarRead | semmle.label | tarRead | | test.go:384:22:384:25 | definition of file | semmle.label | definition of file | +| test.go:384:22:384:25 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:387:18:387:48 | call to NewReader | semmle.label | call to NewReader | | test.go:387:44:387:47 | file | semmle.label | file | +| test.go:387:44:387:47 | file [Reverse] | semmle.label | file [Reverse] | | test.go:389:2:389:13 | snappyReader | semmle.label | snappyReader | | test.go:391:2:391:13 | snappyReader | semmle.label | snappyReader | | test.go:392:2:392:13 | snappyReader | semmle.label | snappyReader | +| test.go:393:2:393:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:393:12:393:38 | call to NewReader | semmle.label | call to NewReader | | test.go:393:26:393:37 | snappyReader | semmle.label | snappyReader | | test.go:395:18:395:24 | tarRead | semmle.label | tarRead | | test.go:412:9:412:12 | definition of file | semmle.label | definition of file | +| test.go:412:9:412:12 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:415:14:415:31 | call to NewReader | semmle.label | call to NewReader | | test.go:415:27:415:30 | file | semmle.label | file | +| test.go:415:27:415:30 | file [Reverse] | semmle.label | file [Reverse] | | test.go:417:2:417:9 | s2Reader | semmle.label | s2Reader | | test.go:418:2:418:9 | s2Reader | semmle.label | s2Reader | | test.go:420:2:420:9 | s2Reader | semmle.label | s2Reader | +| test.go:421:2:421:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:421:12:421:34 | call to NewReader | semmle.label | call to NewReader | | test.go:421:26:421:33 | s2Reader | semmle.label | s2Reader | | test.go:423:18:423:24 | tarRead | semmle.label | tarRead | | test.go:440:19:440:21 | definition of src | semmle.label | definition of src | +| test.go:440:19:440:21 | definition of src [Reverse] | semmle.label | definition of src [Reverse] | | test.go:441:2:441:37 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:441:34:441:36 | src | semmle.label | src | +| test.go:441:34:441:36 | src [Reverse] | semmle.label | src [Reverse] | | test.go:444:12:444:32 | type conversion | semmle.label | type conversion | | test.go:445:23:445:28 | newSrc | semmle.label | newSrc | | test.go:447:11:447:14 | definition of file | semmle.label | definition of file | +| test.go:447:11:447:14 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:450:2:450:38 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:450:34:450:37 | file | semmle.label | file | +| test.go:450:34:450:37 | file [Reverse] | semmle.label | file [Reverse] | | test.go:452:2:452:11 | gzipReader | semmle.label | gzipReader | +| test.go:453:2:453:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:453:12:453:36 | call to NewReader | semmle.label | call to NewReader | | test.go:453:26:453:35 | gzipReader | semmle.label | gzipReader | | test.go:455:18:455:24 | tarRead | semmle.label | tarRead | | test.go:472:20:472:23 | definition of file | semmle.label | definition of file | +| test.go:472:20:472:23 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:475:2:475:47 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:475:43:475:46 | file | semmle.label | file | +| test.go:475:43:475:46 | file [Reverse] | semmle.label | file [Reverse] | | test.go:477:2:477:11 | gzipReader | semmle.label | gzipReader | | test.go:479:2:479:11 | gzipReader | semmle.label | gzipReader | +| test.go:480:2:480:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:480:12:480:36 | call to NewReader | semmle.label | call to NewReader | | test.go:480:26:480:35 | gzipReader | semmle.label | gzipReader | | test.go:482:18:482:24 | tarRead | semmle.label | tarRead | | test.go:499:20:499:23 | definition of file | semmle.label | definition of file | +| test.go:499:20:499:23 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:502:2:502:49 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:502:45:502:48 | file | semmle.label | file | +| test.go:502:45:502:48 | file [Reverse] | semmle.label | file [Reverse] | | test.go:504:2:504:12 | pgzipReader | semmle.label | pgzipReader | | test.go:506:2:506:12 | pgzipReader | semmle.label | pgzipReader | +| test.go:507:2:507:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:507:12:507:37 | call to NewReader | semmle.label | call to NewReader | | test.go:507:26:507:36 | pgzipReader | semmle.label | pgzipReader | | test.go:509:18:509:24 | tarRead | semmle.label | tarRead | | test.go:526:21:526:24 | definition of file | semmle.label | definition of file | +| test.go:526:21:526:24 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:529:2:529:47 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:529:43:529:46 | file | semmle.label | file | +| test.go:529:43:529:46 | file [Reverse] | semmle.label | file [Reverse] | | test.go:531:2:531:11 | zstdReader | semmle.label | zstdReader | | test.go:533:2:533:11 | zstdReader | semmle.label | zstdReader | | test.go:535:2:535:11 | zstdReader | semmle.label | zstdReader | +| test.go:536:2:536:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:536:12:536:36 | call to NewReader | semmle.label | call to NewReader | | test.go:536:26:536:35 | zstdReader | semmle.label | zstdReader | | test.go:538:18:538:24 | tarRead | semmle.label | tarRead | | test.go:555:19:555:22 | definition of file | semmle.label | definition of file | +| test.go:555:19:555:22 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:558:16:558:42 | call to NewReader | semmle.label | call to NewReader | | test.go:558:38:558:41 | file | semmle.label | file | +| test.go:558:38:558:41 | file [Reverse] | semmle.label | file [Reverse] | | test.go:560:2:560:11 | zstdReader | semmle.label | zstdReader | +| test.go:561:2:561:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:561:12:561:36 | call to NewReader | semmle.label | call to NewReader | | test.go:561:26:561:35 | zstdReader | semmle.label | zstdReader | | test.go:563:18:563:24 | tarRead | semmle.label | tarRead | | test.go:580:9:580:12 | definition of file | semmle.label | definition of file | +| test.go:580:9:580:12 | definition of file [Reverse] | semmle.label | definition of file [Reverse] | | test.go:583:2:583:34 | ... := ...[0] | semmle.label | ... := ...[0] | | test.go:583:30:583:33 | file | semmle.label | file | +| test.go:583:30:583:33 | file [Reverse] | semmle.label | file [Reverse] | | test.go:585:2:585:9 | xzReader | semmle.label | xzReader | +| test.go:586:2:586:8 | definition of tarRead | semmle.label | definition of tarRead | | test.go:586:12:586:34 | call to NewReader | semmle.label | call to NewReader | | test.go:586:26:586:33 | xzReader | semmle.label | xzReader | | test.go:589:18:589:24 | tarRead | semmle.label | tarRead | | test.go:590:19:590:25 | tarRead | semmle.label | tarRead | +| test.go:591:22:591:28 | tarRead | semmle.label | tarRead | +| test.go:592:20:592:26 | tarRead | semmle.label | tarRead | | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | @@ -423,6 +586,15 @@ nodes | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | | test.go:611:22:611:28 | definition of tarRead | semmle.label | definition of tarRead | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:611:22:611:28 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | | test.go:621:25:621:31 | tarRead | semmle.label | tarRead | | test.go:621:25:621:31 | tarRead | semmle.label | tarRead | | test.go:621:25:621:31 | tarRead | semmle.label | tarRead | @@ -433,5 +605,48 @@ nodes | test.go:621:25:621:31 | tarRead | semmle.label | tarRead | | test.go:621:25:621:31 | tarRead | semmle.label | tarRead | | test.go:627:23:627:29 | definition of tarRead | semmle.label | definition of tarRead | +| test.go:627:23:627:29 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | | test.go:629:2:629:8 | tarRead | semmle.label | tarRead | +| test.go:633:24:633:30 | definition of tarRead | semmle.label | definition of tarRead | +| test.go:633:24:633:30 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | +| test.go:642:26:642:32 | definition of tarRead | semmle.label | definition of tarRead | +| test.go:642:26:642:32 | definition of tarRead [Reverse] | semmle.label | definition of tarRead [Reverse] | subpaths +| test.go:60:15:60:26 | selection of Body | test.go:158:19:158:22 | definition of file | test.go:158:19:158:22 | definition of file [Reverse] | test.go:60:15:60:26 | selection of Body | +| test.go:61:24:61:35 | selection of Body | test.go:169:28:169:31 | definition of file | test.go:169:28:169:31 | definition of file [Reverse] | test.go:61:24:61:35 | selection of Body | +| test.go:62:13:62:24 | selection of Body | test.go:181:17:181:20 | definition of file | test.go:181:17:181:20 | definition of file [Reverse] | test.go:62:13:62:24 | selection of Body | +| test.go:64:8:64:19 | selection of Body | test.go:208:12:208:15 | definition of file | test.go:208:12:208:15 | definition of file [Reverse] | test.go:64:8:64:19 | selection of Body | +| test.go:66:8:66:19 | selection of Body | test.go:233:12:233:15 | definition of file | test.go:233:12:233:15 | definition of file [Reverse] | test.go:66:8:66:19 | selection of Body | +| test.go:68:17:68:28 | selection of Body | test.go:258:21:258:24 | definition of file | test.go:258:21:258:24 | definition of file [Reverse] | test.go:68:17:68:28 | selection of Body | +| test.go:70:13:70:24 | selection of Body | test.go:283:17:283:20 | definition of file | test.go:283:17:283:20 | definition of file [Reverse] | test.go:70:13:70:24 | selection of Body | +| test.go:72:16:72:27 | selection of Body | test.go:308:20:308:23 | definition of file | test.go:308:20:308:23 | definition of file [Reverse] | test.go:72:16:72:27 | selection of Body | +| test.go:74:7:74:18 | selection of Body | test.go:333:11:333:14 | definition of file | test.go:333:11:333:14 | definition of file [Reverse] | test.go:74:7:74:18 | selection of Body | +| test.go:76:9:76:20 | selection of Body | test.go:358:13:358:16 | definition of file | test.go:358:13:358:16 | definition of file [Reverse] | test.go:76:9:76:20 | selection of Body | +| test.go:78:18:78:29 | selection of Body | test.go:384:22:384:25 | definition of file | test.go:384:22:384:25 | definition of file [Reverse] | test.go:78:18:78:29 | selection of Body | +| test.go:80:5:80:16 | selection of Body | test.go:412:9:412:12 | definition of file | test.go:412:9:412:12 | definition of file [Reverse] | test.go:80:5:80:16 | selection of Body | +| test.go:82:7:82:18 | selection of Body | test.go:447:11:447:14 | definition of file | test.go:447:11:447:14 | definition of file [Reverse] | test.go:82:7:82:18 | selection of Body | +| test.go:84:15:84:26 | selection of Body | test.go:440:19:440:21 | definition of src | test.go:440:19:440:21 | definition of src [Reverse] | test.go:84:15:84:26 | selection of Body | +| test.go:85:16:85:27 | selection of Body | test.go:472:20:472:23 | definition of file | test.go:472:20:472:23 | definition of file [Reverse] | test.go:85:16:85:27 | selection of Body | +| test.go:87:16:87:27 | selection of Body | test.go:499:20:499:23 | definition of file | test.go:499:20:499:23 | definition of file [Reverse] | test.go:87:16:87:27 | selection of Body | +| test.go:89:17:89:28 | selection of Body | test.go:526:21:526:24 | definition of file | test.go:526:21:526:24 | definition of file [Reverse] | test.go:89:17:89:28 | selection of Body | +| test.go:91:15:91:26 | selection of Body | test.go:555:19:555:22 | definition of file | test.go:555:19:555:22 | definition of file [Reverse] | test.go:91:15:91:26 | selection of Body | +| test.go:93:5:93:16 | selection of Body | test.go:580:9:580:12 | definition of file | test.go:580:9:580:12 | definition of file [Reverse] | test.go:93:5:93:16 | selection of Body | +| test.go:189:18:189:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:187:2:187:8 | definition of tarRead | +| test.go:216:18:216:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:214:2:214:8 | definition of tarRead | +| test.go:241:18:241:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:239:2:239:8 | definition of tarRead | +| test.go:266:18:266:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:264:2:264:8 | definition of tarRead | +| test.go:291:18:291:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:289:2:289:8 | definition of tarRead | +| test.go:316:18:316:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:314:2:314:8 | definition of tarRead | +| test.go:341:18:341:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:339:2:339:8 | definition of tarRead | +| test.go:367:18:367:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:365:2:365:8 | definition of tarRead | +| test.go:395:18:395:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:393:2:393:8 | definition of tarRead | +| test.go:423:18:423:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:421:2:421:8 | definition of tarRead | +| test.go:455:18:455:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:453:2:453:8 | definition of tarRead | +| test.go:482:18:482:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:480:2:480:8 | definition of tarRead | +| test.go:509:18:509:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:507:2:507:8 | definition of tarRead | +| test.go:538:18:538:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:536:2:536:8 | definition of tarRead | +| test.go:563:18:563:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:561:2:561:8 | definition of tarRead | +| test.go:589:18:589:24 | tarRead | test.go:611:22:611:28 | definition of tarRead | test.go:611:22:611:28 | definition of tarRead [Reverse] | test.go:586:2:586:8 | definition of tarRead | +| test.go:590:19:590:25 | tarRead | test.go:627:23:627:29 | definition of tarRead | test.go:627:23:627:29 | definition of tarRead [Reverse] | test.go:586:2:586:8 | definition of tarRead | +| test.go:591:22:591:28 | tarRead | test.go:642:26:642:32 | definition of tarRead | test.go:642:26:642:32 | definition of tarRead [Reverse] | test.go:586:2:586:8 | definition of tarRead | +| test.go:592:20:592:26 | tarRead | test.go:633:24:633:30 | definition of tarRead | test.go:633:24:633:30 | definition of tarRead [Reverse] | test.go:586:2:586:8 | definition of tarRead | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected b/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected index 8e113c12ef737..c461a5d284521 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/GoMicro/LogInjection.expected @@ -1,26 +1,43 @@ edges -| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req [Return] | provenance | | +| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req [Reverse] | provenance | | +| main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req [Reverse] | provenance | | | main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | provenance | | | main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | provenance | | -| main.go:18:46:18:48 | definition of req [Return] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Return] | provenance | | +| main.go:18:46:18:48 | definition of req [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| main.go:18:46:18:48 | definition of req [Reverse] | proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | provenance | | +| main.go:18:46:18:48 | definition of req [Reverse] | proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | provenance | | | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | provenance | | | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:86:37:86:38 | in | provenance | | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Return] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | provenance | | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | provenance | | | proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | provenance | | | proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | provenance | | | proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | | proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | provenance | | +| proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | provenance | | nodes | main.go:18:46:18:48 | definition of req | semmle.label | definition of req | | main.go:18:46:18:48 | definition of req | semmle.label | definition of req | -| main.go:18:46:18:48 | definition of req [Return] | semmle.label | definition of req [Return] | +| main.go:18:46:18:48 | definition of req [Reverse] | semmle.label | definition of req [Reverse] | +| main.go:18:46:18:48 | definition of req [Reverse] | semmle.label | definition of req [Reverse] | | main.go:21:28:21:31 | name | semmle.label | name | | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | semmle.label | definition of in | | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | semmle.label | definition of in | -| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Return] | semmle.label | definition of in [Return] | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | +| proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | | proto/Hello.pb.micro.go:86:37:86:38 | in | semmle.label | in | | proto/Hello.pb.micro.go:86:37:86:38 | in | semmle.label | in | +| proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | semmle.label | in [Reverse] | +| proto/Hello.pb.micro.go:86:37:86:38 | in [Reverse] | semmle.label | in [Reverse] | subpaths +| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | +| proto/Hello.pb.micro.go:86:37:86:38 | in | main.go:18:46:18:48 | definition of req | main.go:18:46:18:48 | definition of req [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | +| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | +| proto/Hello.pb.micro.go:86:37:86:38 | in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | proto/Hello.pb.micro.go:85:53:85:54 | definition of in [Reverse] | proto/Hello.pb.micro.go:85:53:85:54 | definition of in | #select | main.go:21:28:21:31 | name | main.go:18:46:18:48 | definition of req | main.go:21:28:21:31 | name | This log entry depends on a $@. | main.go:18:46:18:48 | definition of req | user-provided value | diff --git a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected index eaac3de3db9e6..4b57284a1e017 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected +++ b/go/ql/test/library-tests/semmle/go/frameworks/Twirp/RequestForgery.expected @@ -5,97 +5,218 @@ | server/main.go:30:38:30:48 | selection of Text | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | server/main.go:30:38:30:48 | selection of Text | The $@ of this request depends on a $@. | server/main.go:30:38:30:48 | selection of Text | URL | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | user-provided value | | server/main.go:30:38:30:48 | selection of Text | server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | The $@ of this request depends on a $@. | server/main.go:30:38:30:48 | selection of Text | URL | server/main.go:19:56:19:61 | definition of params | user-provided value | edges +| client/main.go:16:35:16:78 | &... | client/main.go:16:35:16:78 | &... | provenance | | +| client/main.go:16:35:16:78 | &... | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | provenance | | +| client/main.go:16:35:16:78 | &... | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | provenance | | | client/main.go:16:35:16:78 | &... | server/main.go:19:56:19:61 | definition of params | provenance | | +| rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | provenance | | +| rpc/notes/service.twirp.go:93:38:93:40 | definition of req | rpc/notes/service.twirp.go:93:38:93:40 | definition of req [Reverse] | provenance | | +| rpc/notes/service.twirp.go:116:74:116:75 | definition of in | rpc/notes/service.twirp.go:116:74:116:75 | definition of in [Reverse] | provenance | | +| rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | provenance | | +| rpc/notes/service.twirp.go:232:38:232:40 | definition of req | rpc/notes/service.twirp.go:232:38:232:40 | definition of req [Reverse] | provenance | | +| rpc/notes/service.twirp.go:255:70:255:71 | definition of in | rpc/notes/service.twirp.go:255:70:255:71 | definition of in [Reverse] | provenance | | | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:416:32:416:34 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:419:33:419:35 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:416:32:416:34 | req [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:416:32:416:34 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Return] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:419:33:419:35 | req [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:419:33:419:35 | req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:455:23:455:25 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Body] | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body | provenance | | | rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Return] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:25 | req [pointer, Body] | rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:30 | selection of Body | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | provenance | | | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | provenance | Src:MaD:1 | | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | provenance | | +| rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | provenance | | | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | rpc/notes/service.twirp.go:477:44:477:51 | typedReq | provenance | | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | provenance | | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | provenance | | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | provenance | | | rpc/notes/service.twirp.go:477:44:477:51 | typedReq | server/main.go:19:56:19:61 | definition of params | provenance | | | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | provenance | | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | provenance | | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | provenance | | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | provenance | | | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | server/main.go:19:56:19:61 | definition of params | provenance | | -| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:538:25:538:27 | req [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | rpc/notes/service.twirp.go:544:27:544:29 | buf | provenance | | | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | rpc/notes/service.twirp.go:544:27:544:29 | buf | provenance | | | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Body] | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | provenance | | | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Return] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:538:25:538:27 | req [pointer, Body] | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Body] | provenance | | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | provenance | MaD:3 | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | provenance | Src:MaD:1 MaD:3 | +| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | provenance | | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | provenance | Src:MaD:1 | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | provenance | | +| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | provenance | | | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | | rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | provenance | MaD:2 | | rpc/notes/service.twirp.go:544:27:544:29 | buf | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | provenance | MaD:2 | | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | provenance | | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | provenance | | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | provenance | | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | provenance | | | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | server/main.go:19:56:19:61 | definition of params | provenance | | | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | provenance | | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | provenance | | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | provenance | | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | server/main.go:19:56:19:61 | definition of params | provenance | | -| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Return] [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:616:37:616:39 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:618:41:618:43 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:616:37:616:39 | req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:616:37:616:39 | req [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:618:41:618:43 | req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:618:41:618:43 | req [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:635:23:635:25 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Body] | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body | provenance | | +| rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | provenance | | | rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Return] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:25 | req [pointer, Body] | rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:30 | selection of Body | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | provenance | | | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | provenance | Src:MaD:1 | | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | provenance | | -| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Return] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | provenance | | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:718:25:718:27 | req [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Body] | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | provenance | | | rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | provenance | | -| rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Return] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:27 | req [pointer, Body] | rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Body] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | provenance | | | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | provenance | Src:MaD:1 | | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | provenance | | -| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Return] | provenance | | +| rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | provenance | | +| rpc/notes/service.twirp.go:1203:102:1203:103 | definition of in | rpc/notes/service.twirp.go:1203:102:1203:103 | definition of in [Reverse] | provenance | | +| rpc/notes/service.twirp.go:1252:98:1252:99 | definition of in | rpc/notes/service.twirp.go:1252:98:1252:99 | definition of in [Reverse] | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | provenance | | +| server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | provenance | | | server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | provenance | | | server/main.go:19:56:19:61 | definition of params | server/main.go:30:38:30:48 | selection of Text | provenance | | -| server/main.go:19:56:19:61 | definition of params [Return] | client/main.go:16:35:16:78 | &... | provenance | | -| server/main.go:19:56:19:61 | definition of params [Return] | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | provenance | | -| server/main.go:19:56:19:61 | definition of params [Return] | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | provenance | | -| server/main.go:19:56:19:61 | definition of params [Return] | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | provenance | | -| server/main.go:19:56:19:61 | definition of params [Return] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | +| server/main.go:19:56:19:61 | definition of params [Reverse] | client/main.go:16:35:16:78 | &... | provenance | | +| server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | provenance | | +| server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | provenance | | +| server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | provenance | | +| server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | provenance | | models | 1 | Source: net/http; Request; true; Body; ; ; ; remote; manual | | 2 | Summary: google.golang.org/protobuf/proto; ; false; Unmarshal; ; ; Argument[0]; Argument[1]; taint; manual | | 3 | Summary: io; ; false; ReadAll; ; ; Argument[0]; ReturnValue[0]; taint; manual | nodes | client/main.go:16:35:16:78 | &... | semmle.label | &... | +| rpc/notes/service.twirp.go:87:70:87:71 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | +| rpc/notes/service.twirp.go:93:38:93:40 | definition of req | semmle.label | definition of req | +| rpc/notes/service.twirp.go:93:38:93:40 | definition of req [Reverse] | semmle.label | definition of req [Reverse] | +| rpc/notes/service.twirp.go:116:74:116:75 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:116:74:116:75 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | +| rpc/notes/service.twirp.go:226:66:226:67 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | +| rpc/notes/service.twirp.go:232:38:232:40 | definition of req | semmle.label | definition of req | +| rpc/notes/service.twirp.go:232:38:232:40 | definition of req [Reverse] | semmle.label | definition of req [Reverse] | +| rpc/notes/service.twirp.go:255:70:255:71 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:255:70:255:71 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | | rpc/notes/service.twirp.go:416:32:416:34 | req [pointer, Body] | semmle.label | req [pointer, Body] | -| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:419:33:419:35 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:438:40:438:42 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | semmle.label | req [pointer, Body] | | rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | semmle.label | req [pointer, Body] | -| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Body] | semmle.label | implicit dereference [Body] | +| rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:455:23:455:25 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:455:23:455:25 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:455:23:455:25 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:455:23:455:30 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | +| rpc/notes/service.twirp.go:455:23:455:30 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | semmle.label | definition of typedReq | | rpc/notes/service.twirp.go:477:44:477:51 | typedReq | semmle.label | typedReq | | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | semmle.label | capture variable reqContent | | rpc/notes/service.twirp.go:495:35:495:44 | reqContent | semmle.label | reqContent | -| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | semmle.label | ... := ...[0] | | rpc/notes/service.twirp.go:538:2:538:33 | ... := ...[0] | semmle.label | ... := ...[0] | | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Body] | semmle.label | implicit dereference [Body] | | rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | +| rpc/notes/service.twirp.go:538:25:538:27 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | +| rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:538:25:538:27 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:538:25:538:27 | req [pointer, Body] | semmle.label | req [pointer, Body] | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | +| rpc/notes/service.twirp.go:538:25:538:32 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | semmle.label | definition of reqContent | | rpc/notes/service.twirp.go:543:2:543:11 | definition of reqContent | semmle.label | definition of reqContent | | rpc/notes/service.twirp.go:544:27:544:29 | buf | semmle.label | buf | @@ -104,20 +225,72 @@ nodes | rpc/notes/service.twirp.go:558:44:558:51 | typedReq | semmle.label | typedReq | | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | semmle.label | capture variable reqContent | | rpc/notes/service.twirp.go:576:35:576:44 | reqContent | semmle.label | reqContent | -| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | -| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:616:37:616:39 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:616:37:616:39 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:618:41:618:43 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:618:41:618:43 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:626:98:626:100 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Body] | semmle.label | implicit dereference [Body] | +| rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:635:23:635:25 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:635:23:635:25 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:635:23:635:25 | req [pointer, Body] | semmle.label | req [pointer, Body] | | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body | semmle.label | selection of Body | +| rpc/notes/service.twirp.go:635:23:635:30 | selection of Body | semmle.label | selection of Body | +| rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | | rpc/notes/service.twirp.go:635:23:635:30 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | -| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Return] [pointer, Body] | semmle.label | definition of req [Return] [pointer, Body] | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | semmle.label | definition of req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:709:102:709:104 | definition of req [pointer, Body] | semmle.label | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Body] | semmle.label | implicit dereference [Body] | +| rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:718:25:718:27 | implicit dereference [Reverse] [Body] | semmle.label | implicit dereference [Reverse] [Body] | | rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:718:25:718:27 | req [Reverse] [pointer, Body] | semmle.label | req [Reverse] [pointer, Body] | +| rpc/notes/service.twirp.go:718:25:718:27 | req [pointer, Body] | semmle.label | req [pointer, Body] | +| rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body | semmle.label | selection of Body | | rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | +| rpc/notes/service.twirp.go:718:25:718:32 | selection of Body [Reverse] | semmle.label | selection of Body [Reverse] | +| rpc/notes/service.twirp.go:1203:102:1203:103 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:1203:102:1203:103 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | +| rpc/notes/service.twirp.go:1252:98:1252:99 | definition of in | semmle.label | definition of in | +| rpc/notes/service.twirp.go:1252:98:1252:99 | definition of in [Reverse] | semmle.label | definition of in [Reverse] | | server/main.go:19:56:19:61 | definition of params | semmle.label | definition of params | | server/main.go:19:56:19:61 | definition of params | semmle.label | definition of params | -| server/main.go:19:56:19:61 | definition of params [Return] | semmle.label | definition of params [Return] | +| server/main.go:19:56:19:61 | definition of params [Reverse] | semmle.label | definition of params [Reverse] | +| server/main.go:19:56:19:61 | definition of params [Reverse] | semmle.label | definition of params [Reverse] | | server/main.go:30:38:30:48 | selection of Text | semmle.label | selection of Text | subpaths +| client/main.go:16:35:16:78 | &... | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | client/main.go:16:35:16:78 | &... | +| client/main.go:16:35:16:78 | &... | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | client/main.go:16:35:16:78 | &... | +| client/main.go:16:35:16:78 | &... | server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | client/main.go:16:35:16:78 | &... | +| rpc/notes/service.twirp.go:416:32:416:34 | req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:419:33:419:35 | req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:382:66:382:68 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:436:36:436:38 | req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:446:97:446:99 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:438:40:438:42 | req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:529:101:529:103 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:428:93:428:95 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | +| rpc/notes/service.twirp.go:477:44:477:51 | typedReq | server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:473:6:473:13 | definition of typedReq | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:495:35:495:44 | reqContent | server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:493:2:493:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | +| rpc/notes/service.twirp.go:558:44:558:51 | typedReq | server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:554:6:554:13 | definition of typedReq | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | rpc/notes/service.twirp.go:87:70:87:71 | definition of in | rpc/notes/service.twirp.go:87:70:87:71 | definition of in [Reverse] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | rpc/notes/service.twirp.go:226:66:226:67 | definition of in | rpc/notes/service.twirp.go:226:66:226:67 | definition of in [Reverse] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:576:35:576:44 | reqContent | server/main.go:19:56:19:61 | definition of params | server/main.go:19:56:19:61 | definition of params [Reverse] | rpc/notes/service.twirp.go:574:2:574:2 | capture variable reqContent | +| rpc/notes/service.twirp.go:616:37:616:39 | req [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:626:98:626:100 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | +| rpc/notes/service.twirp.go:618:41:618:43 | req [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [pointer, Body] | rpc/notes/service.twirp.go:709:102:709:104 | definition of req [Reverse] [pointer, Body] | rpc/notes/service.twirp.go:608:94:608:96 | definition of req [pointer, Body] | diff --git a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected index dc54af70dbba5..f184bd34ed665 100644 --- a/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected +++ b/go/ql/test/query-tests/InconsistentCode/UnhandledCloseWritableHandle/UnhandledCloseWritableHandle.expected @@ -8,16 +8,23 @@ | tests.go:110:9:110:9 | f | tests.go:108:5:108:78 | ... := ...[0] | tests.go:110:9:110:9 | f | File handle may be writable as a result of data flow from a $@ and closing it may result in data loss upon failure, which is not handled explicitly. | tests.go:108:15:108:78 | call to OpenFile | call to OpenFile | | tests.go:129:3:129:3 | f | tests.go:125:5:125:78 | ... := ...[0] | tests.go:129:3:129:3 | f | File handle may be writable as a result of data flow from a $@ and closing it may result in data loss upon failure, which is not handled explicitly. | tests.go:125:15:125:78 | call to OpenFile | call to OpenFile | edges +| tests.go:8:24:8:24 | definition of f | tests.go:8:24:8:24 | definition of f [Reverse] | provenance | | | tests.go:8:24:8:24 | definition of f | tests.go:9:8:9:8 | f | provenance | | | tests.go:12:32:12:32 | definition of f | tests.go:13:13:13:13 | capture variable f | provenance | | | tests.go:13:13:13:13 | capture variable f | tests.go:14:3:14:3 | f | provenance | | +| tests.go:31:5:31:5 | definition of f | tests.go:32:21:32:21 | f | provenance | | +| tests.go:31:5:31:5 | definition of f | tests.go:33:29:33:29 | f | provenance | | | tests.go:31:5:31:78 | ... := ...[0] | tests.go:32:21:32:21 | f | provenance | Src:MaD:1 | | tests.go:31:5:31:78 | ... := ...[0] | tests.go:33:29:33:29 | f | provenance | Src:MaD:1 | | tests.go:32:21:32:21 | f | tests.go:8:24:8:24 | definition of f | provenance | | +| tests.go:32:21:32:21 | f | tests.go:31:5:31:5 | definition of f | provenance | | | tests.go:33:29:33:29 | f | tests.go:12:32:12:32 | definition of f | provenance | | +| tests.go:45:5:45:5 | definition of f | tests.go:46:21:46:21 | f | provenance | | +| tests.go:45:5:45:5 | definition of f | tests.go:47:29:47:29 | f | provenance | | | tests.go:45:5:45:76 | ... := ...[0] | tests.go:46:21:46:21 | f | provenance | Src:MaD:1 | | tests.go:45:5:45:76 | ... := ...[0] | tests.go:47:29:47:29 | f | provenance | Src:MaD:1 | | tests.go:46:21:46:21 | f | tests.go:8:24:8:24 | definition of f | provenance | | +| tests.go:46:21:46:21 | f | tests.go:45:5:45:5 | definition of f | provenance | | | tests.go:47:29:47:29 | f | tests.go:12:32:12:32 | definition of f | provenance | | | tests.go:54:5:54:78 | ... := ...[0] | tests.go:56:3:56:3 | f | provenance | Src:MaD:1 | | tests.go:66:5:66:76 | ... := ...[0] | tests.go:68:3:68:3 | f | provenance | Src:MaD:1 | @@ -27,13 +34,16 @@ models | 1 | Source: os; ; false; OpenFile; ; ; ReturnValue[0]; file; manual | nodes | tests.go:8:24:8:24 | definition of f | semmle.label | definition of f | +| tests.go:8:24:8:24 | definition of f [Reverse] | semmle.label | definition of f [Reverse] | | tests.go:9:8:9:8 | f | semmle.label | f | | tests.go:12:32:12:32 | definition of f | semmle.label | definition of f | | tests.go:13:13:13:13 | capture variable f | semmle.label | capture variable f | | tests.go:14:3:14:3 | f | semmle.label | f | +| tests.go:31:5:31:5 | definition of f | semmle.label | definition of f | | tests.go:31:5:31:78 | ... := ...[0] | semmle.label | ... := ...[0] | | tests.go:32:21:32:21 | f | semmle.label | f | | tests.go:33:29:33:29 | f | semmle.label | f | +| tests.go:45:5:45:5 | definition of f | semmle.label | definition of f | | tests.go:45:5:45:76 | ... := ...[0] | semmle.label | ... := ...[0] | | tests.go:46:21:46:21 | f | semmle.label | f | | tests.go:47:29:47:29 | f | semmle.label | f | @@ -46,3 +56,5 @@ nodes | tests.go:125:5:125:78 | ... := ...[0] | semmle.label | ... := ...[0] | | tests.go:129:3:129:3 | f | semmle.label | f | subpaths +| tests.go:32:21:32:21 | f | tests.go:8:24:8:24 | definition of f | tests.go:8:24:8:24 | definition of f [Reverse] | tests.go:31:5:31:5 | definition of f | +| tests.go:46:21:46:21 | f | tests.go:8:24:8:24 | definition of f | tests.go:8:24:8:24 | definition of f [Reverse] | tests.go:45:5:45:5 | definition of f | diff --git a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected index e1503095dbd16..dff32df4e1ff8 100644 --- a/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-078/CommandInjection.expected @@ -60,41 +60,24 @@ edges | SanitizingDoubleDash.go:13:25:13:31 | tainted | SanitizingDoubleDash.go:13:15:13:32 | array literal [array] | provenance | | | SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | SanitizingDoubleDash.go:14:23:14:33 | slice element node | provenance | | | SanitizingDoubleDash.go:14:23:14:33 | slice element node | SanitizingDoubleDash.go:14:23:14:33 | slice expression | provenance | | -| SanitizingDoubleDash.go:38:3:38:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:39:21:39:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:39:14:39:44 | []type{args} [array] | SanitizingDoubleDash.go:39:14:39:44 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:39:14:39:44 | []type{args} [array] | SanitizingDoubleDash.go:39:14:39:44 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:39:14:39:44 | call to append | SanitizingDoubleDash.go:40:23:40:30 | arrayLit | provenance | | -| SanitizingDoubleDash.go:39:14:39:44 | call to append [Reverse] [array] | SanitizingDoubleDash.go:38:3:38:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:39:14:39:44 | call to append [array] | SanitizingDoubleDash.go:39:14:39:44 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:39:14:39:44 | call to append [array] | SanitizingDoubleDash.go:40:23:40:30 | arrayLit | provenance | | -| SanitizingDoubleDash.go:39:21:39:28 | arrayLit [array] | SanitizingDoubleDash.go:39:14:39:44 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:39:21:39:28 | arrayLit [array] | SanitizingDoubleDash.go:39:14:39:44 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:39:31:39:37 | tainted | SanitizingDoubleDash.go:39:14:39:44 | []type{args} [array] | provenance | | -| SanitizingDoubleDash.go:52:3:52:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:53:21:53:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:52:15:52:31 | slice literal [array] | SanitizingDoubleDash.go:53:21:53:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:52:24:52:30 | tainted | SanitizingDoubleDash.go:52:15:52:31 | slice literal [array] | provenance | | | SanitizingDoubleDash.go:53:14:53:35 | call to append | SanitizingDoubleDash.go:54:23:54:30 | arrayLit | provenance | | -| SanitizingDoubleDash.go:53:14:53:35 | call to append [Reverse] [array] | SanitizingDoubleDash.go:52:3:52:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:53:14:53:35 | call to append [array] | SanitizingDoubleDash.go:53:14:53:35 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:53:14:53:35 | call to append [array] | SanitizingDoubleDash.go:54:23:54:30 | arrayLit | provenance | | | SanitizingDoubleDash.go:53:21:53:28 | arrayLit | SanitizingDoubleDash.go:53:14:53:35 | call to append | provenance | MaD:4 | | SanitizingDoubleDash.go:53:21:53:28 | arrayLit [array] | SanitizingDoubleDash.go:53:14:53:35 | call to append | provenance | MaD:3 | | SanitizingDoubleDash.go:53:21:53:28 | arrayLit [array] | SanitizingDoubleDash.go:53:14:53:35 | call to append [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:67:3:67:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:68:21:68:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:68:3:68:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append [Reverse] [array] | provenance | | -| SanitizingDoubleDash.go:68:3:68:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:68:14:68:38 | []type{args} [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:68:14:68:38 | []type{args} [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:68:14:68:38 | call to append | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | provenance | | -| SanitizingDoubleDash.go:68:14:68:38 | call to append [Reverse] [array] | SanitizingDoubleDash.go:67:3:67:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:68:14:68:38 | call to append [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:68:14:68:38 | call to append [array] | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:68:21:68:28 | arrayLit [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:68:21:68:28 | arrayLit [array] | SanitizingDoubleDash.go:68:14:68:38 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:68:31:68:37 | tainted | SanitizingDoubleDash.go:68:14:68:38 | []type{args} [array] | provenance | | | SanitizingDoubleDash.go:69:14:69:35 | call to append | SanitizingDoubleDash.go:70:23:70:30 | arrayLit | provenance | | -| SanitizingDoubleDash.go:69:14:69:35 | call to append [Reverse] [array] | SanitizingDoubleDash.go:68:3:68:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:69:14:69:35 | call to append [array] | SanitizingDoubleDash.go:69:14:69:35 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:69:14:69:35 | call to append [array] | SanitizingDoubleDash.go:70:23:70:30 | arrayLit | provenance | | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | SanitizingDoubleDash.go:69:14:69:35 | call to append | provenance | MaD:4 | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | SanitizingDoubleDash.go:69:14:69:35 | call to append | provenance | MaD:3 | @@ -125,80 +108,39 @@ edges | SanitizingDoubleDash.go:101:24:101:34 | slice element node | SanitizingDoubleDash.go:101:24:101:34 | slice expression | provenance | | | SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | provenance | | | SanitizingDoubleDash.go:105:30:105:36 | tainted | SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | provenance | | -| SanitizingDoubleDash.go:110:3:110:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:111:21:111:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:111:14:111:44 | []type{args} [array] | SanitizingDoubleDash.go:111:14:111:44 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:111:14:111:44 | []type{args} [array] | SanitizingDoubleDash.go:111:14:111:44 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:111:14:111:44 | call to append | SanitizingDoubleDash.go:112:24:112:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:111:14:111:44 | call to append [Reverse] [array] | SanitizingDoubleDash.go:110:3:110:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:111:14:111:44 | call to append [array] | SanitizingDoubleDash.go:111:14:111:44 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:111:14:111:44 | call to append [array] | SanitizingDoubleDash.go:112:24:112:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:111:21:111:28 | arrayLit [array] | SanitizingDoubleDash.go:111:14:111:44 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:111:21:111:28 | arrayLit [array] | SanitizingDoubleDash.go:111:14:111:44 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:111:37:111:43 | tainted | SanitizingDoubleDash.go:111:14:111:44 | []type{args} [array] | provenance | | -| SanitizingDoubleDash.go:116:3:116:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:117:21:117:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:117:14:117:44 | []type{args} [array] | SanitizingDoubleDash.go:117:14:117:44 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:117:14:117:44 | []type{args} [array] | SanitizingDoubleDash.go:117:14:117:44 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:117:14:117:44 | call to append | SanitizingDoubleDash.go:118:24:118:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:117:14:117:44 | call to append [Reverse] [array] | SanitizingDoubleDash.go:116:3:116:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:117:14:117:44 | call to append [array] | SanitizingDoubleDash.go:117:14:117:44 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:117:14:117:44 | call to append [array] | SanitizingDoubleDash.go:118:24:118:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:117:21:117:28 | arrayLit [array] | SanitizingDoubleDash.go:117:14:117:44 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:117:21:117:28 | arrayLit [array] | SanitizingDoubleDash.go:117:14:117:44 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:117:31:117:37 | tainted | SanitizingDoubleDash.go:117:14:117:44 | []type{args} [array] | provenance | | -| SanitizingDoubleDash.go:122:3:122:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:123:21:123:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:123:14:123:38 | []type{args} [array] | SanitizingDoubleDash.go:123:14:123:38 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:123:14:123:38 | []type{args} [array] | SanitizingDoubleDash.go:123:14:123:38 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:123:14:123:38 | call to append | SanitizingDoubleDash.go:124:24:124:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:123:14:123:38 | call to append [Reverse] [array] | SanitizingDoubleDash.go:122:3:122:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:123:14:123:38 | call to append [array] | SanitizingDoubleDash.go:123:14:123:38 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:123:14:123:38 | call to append [array] | SanitizingDoubleDash.go:124:24:124:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:123:21:123:28 | arrayLit [array] | SanitizingDoubleDash.go:123:14:123:38 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:123:21:123:28 | arrayLit [array] | SanitizingDoubleDash.go:123:14:123:38 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:123:31:123:37 | tainted | SanitizingDoubleDash.go:123:14:123:38 | []type{args} [array] | provenance | | -| SanitizingDoubleDash.go:128:3:128:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:129:21:129:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:128:15:128:31 | slice literal [array] | SanitizingDoubleDash.go:129:21:129:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:128:24:128:30 | tainted | SanitizingDoubleDash.go:128:15:128:31 | slice literal [array] | provenance | | | SanitizingDoubleDash.go:129:14:129:35 | call to append | SanitizingDoubleDash.go:130:24:130:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:129:14:129:35 | call to append [Reverse] [array] | SanitizingDoubleDash.go:128:3:128:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:129:14:129:35 | call to append [array] | SanitizingDoubleDash.go:129:14:129:35 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:129:14:129:35 | call to append [array] | SanitizingDoubleDash.go:130:24:130:31 | arrayLit | provenance | | | SanitizingDoubleDash.go:129:21:129:28 | arrayLit | SanitizingDoubleDash.go:129:14:129:35 | call to append | provenance | MaD:4 | | SanitizingDoubleDash.go:129:21:129:28 | arrayLit [array] | SanitizingDoubleDash.go:129:14:129:35 | call to append | provenance | MaD:3 | | SanitizingDoubleDash.go:129:21:129:28 | arrayLit [array] | SanitizingDoubleDash.go:129:14:129:35 | call to append [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:134:3:134:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:135:21:135:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:135:3:135:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:135:14:135:47 | call to append [Reverse] [array] | provenance | | -| SanitizingDoubleDash.go:135:3:135:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:136:21:136:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:135:14:135:47 | call to append | SanitizingDoubleDash.go:136:21:136:28 | arrayLit | provenance | | -| SanitizingDoubleDash.go:135:14:135:47 | call to append [Reverse] [array] | SanitizingDoubleDash.go:134:3:134:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:135:14:135:47 | call to append [array] | SanitizingDoubleDash.go:135:14:135:47 | call to append [Reverse] [array] | provenance | | -| SanitizingDoubleDash.go:135:14:135:47 | call to append [array] | SanitizingDoubleDash.go:136:21:136:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:135:21:135:28 | arrayLit [array] | SanitizingDoubleDash.go:135:14:135:47 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:135:21:135:28 | arrayLit [array] | SanitizingDoubleDash.go:135:14:135:47 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:136:14:136:38 | []type{args} [array] | SanitizingDoubleDash.go:136:14:136:38 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:136:14:136:38 | []type{args} [array] | SanitizingDoubleDash.go:136:14:136:38 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:136:14:136:38 | call to append | SanitizingDoubleDash.go:137:24:137:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:136:14:136:38 | call to append [Reverse] [array] | SanitizingDoubleDash.go:135:3:135:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:136:14:136:38 | call to append [array] | SanitizingDoubleDash.go:136:14:136:38 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:136:14:136:38 | call to append [array] | SanitizingDoubleDash.go:137:24:137:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:136:21:136:28 | arrayLit | SanitizingDoubleDash.go:136:14:136:38 | call to append | provenance | MaD:4 | -| SanitizingDoubleDash.go:136:21:136:28 | arrayLit [array] | SanitizingDoubleDash.go:136:14:136:38 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:136:21:136:28 | arrayLit [array] | SanitizingDoubleDash.go:136:14:136:38 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:136:31:136:37 | tainted | SanitizingDoubleDash.go:136:14:136:38 | []type{args} [array] | provenance | | -| SanitizingDoubleDash.go:141:3:141:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:142:21:142:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:142:3:142:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append [Reverse] [array] | provenance | | -| SanitizingDoubleDash.go:142:3:142:10 | definition of arrayLit [array] | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | provenance | | | SanitizingDoubleDash.go:142:14:142:38 | []type{args} [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append | provenance | MaD:5 | | SanitizingDoubleDash.go:142:14:142:38 | []type{args} [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append [array] | provenance | MaD:5 | | SanitizingDoubleDash.go:142:14:142:38 | call to append | SanitizingDoubleDash.go:143:21:143:28 | arrayLit | provenance | | -| SanitizingDoubleDash.go:142:14:142:38 | call to append [Reverse] [array] | SanitizingDoubleDash.go:141:3:141:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:142:14:142:38 | call to append [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:142:14:142:38 | call to append [array] | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | provenance | | -| SanitizingDoubleDash.go:142:21:142:28 | arrayLit [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append | provenance | MaD:3 | -| SanitizingDoubleDash.go:142:21:142:28 | arrayLit [array] | SanitizingDoubleDash.go:142:14:142:38 | call to append [array] | provenance | MaD:3 | | SanitizingDoubleDash.go:142:31:142:37 | tainted | SanitizingDoubleDash.go:142:14:142:38 | []type{args} [array] | provenance | | | SanitizingDoubleDash.go:143:14:143:35 | call to append | SanitizingDoubleDash.go:144:24:144:31 | arrayLit | provenance | | -| SanitizingDoubleDash.go:143:14:143:35 | call to append [Reverse] [array] | SanitizingDoubleDash.go:142:3:142:10 | definition of arrayLit [array] | provenance | MaD:3 | -| SanitizingDoubleDash.go:143:14:143:35 | call to append [array] | SanitizingDoubleDash.go:143:14:143:35 | call to append [Reverse] [array] | provenance | | | SanitizingDoubleDash.go:143:14:143:35 | call to append [array] | SanitizingDoubleDash.go:144:24:144:31 | arrayLit | provenance | | | SanitizingDoubleDash.go:143:21:143:28 | arrayLit | SanitizingDoubleDash.go:143:14:143:35 | call to append | provenance | MaD:4 | | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | SanitizingDoubleDash.go:143:14:143:35 | call to append | provenance | MaD:3 | @@ -245,33 +187,23 @@ nodes | SanitizingDoubleDash.go:14:23:14:30 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:14:23:14:33 | slice element node | semmle.label | slice element node | | SanitizingDoubleDash.go:14:23:14:33 | slice expression | semmle.label | slice expression | -| SanitizingDoubleDash.go:38:3:38:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:39:14:39:44 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:39:14:39:44 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:39:14:39:44 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:39:14:39:44 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:39:21:39:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:39:31:39:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:40:23:40:30 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:52:3:52:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:52:15:52:31 | slice literal [array] | semmle.label | slice literal [array] | | SanitizingDoubleDash.go:52:24:52:30 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:53:14:53:35 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:53:14:53:35 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:53:14:53:35 | call to append [array] | semmle.label | call to append [array] | | SanitizingDoubleDash.go:53:21:53:28 | arrayLit | semmle.label | arrayLit | | SanitizingDoubleDash.go:53:21:53:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:54:23:54:30 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:67:3:67:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | -| SanitizingDoubleDash.go:68:3:68:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:68:14:68:38 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:68:14:68:38 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:68:14:68:38 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:68:14:68:38 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:68:21:68:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:68:31:68:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:69:14:69:35 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:69:14:69:35 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:69:14:69:35 | call to append [array] | semmle.label | call to append [array] | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit | semmle.label | arrayLit | | SanitizingDoubleDash.go:69:21:69:28 | arrayLit [array] | semmle.label | arrayLit [array] | @@ -292,63 +224,38 @@ nodes | SanitizingDoubleDash.go:105:15:105:37 | slice literal [array] | semmle.label | slice literal [array] | | SanitizingDoubleDash.go:105:30:105:36 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:106:24:106:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:110:3:110:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:111:14:111:44 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:111:14:111:44 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:111:14:111:44 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:111:14:111:44 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:111:21:111:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:111:37:111:43 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:112:24:112:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:116:3:116:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:117:14:117:44 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:117:14:117:44 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:117:14:117:44 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:117:14:117:44 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:117:21:117:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:117:31:117:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:118:24:118:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:122:3:122:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:123:14:123:38 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:123:14:123:38 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:123:14:123:38 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:123:14:123:38 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:123:21:123:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:123:31:123:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:124:24:124:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:128:3:128:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:128:15:128:31 | slice literal [array] | semmle.label | slice literal [array] | | SanitizingDoubleDash.go:128:24:128:30 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:129:14:129:35 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:129:14:129:35 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:129:14:129:35 | call to append [array] | semmle.label | call to append [array] | | SanitizingDoubleDash.go:129:21:129:28 | arrayLit | semmle.label | arrayLit | | SanitizingDoubleDash.go:129:21:129:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:130:24:130:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:134:3:134:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | -| SanitizingDoubleDash.go:135:3:135:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | -| SanitizingDoubleDash.go:135:14:135:47 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:135:14:135:47 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | -| SanitizingDoubleDash.go:135:14:135:47 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:135:21:135:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:136:14:136:38 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:136:14:136:38 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:136:14:136:38 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:136:14:136:38 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:136:21:136:28 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:136:21:136:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:136:31:136:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:137:24:137:31 | arrayLit | semmle.label | arrayLit | -| SanitizingDoubleDash.go:141:3:141:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | -| SanitizingDoubleDash.go:142:3:142:10 | definition of arrayLit [array] | semmle.label | definition of arrayLit [array] | | SanitizingDoubleDash.go:142:14:142:38 | []type{args} [array] | semmle.label | []type{args} [array] | | SanitizingDoubleDash.go:142:14:142:38 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:142:14:142:38 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:142:14:142:38 | call to append [array] | semmle.label | call to append [array] | -| SanitizingDoubleDash.go:142:21:142:28 | arrayLit [array] | semmle.label | arrayLit [array] | | SanitizingDoubleDash.go:142:31:142:37 | tainted | semmle.label | tainted | | SanitizingDoubleDash.go:143:14:143:35 | call to append | semmle.label | call to append | -| SanitizingDoubleDash.go:143:14:143:35 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | SanitizingDoubleDash.go:143:14:143:35 | call to append [array] | semmle.label | call to append [array] | | SanitizingDoubleDash.go:143:21:143:28 | arrayLit | semmle.label | arrayLit | | SanitizingDoubleDash.go:143:21:143:28 | arrayLit [array] | semmle.label | arrayLit [array] | diff --git a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected index 3435eff77754e..b57f5c0a792f3 100644 --- a/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected +++ b/go/ql/test/query-tests/Security/CWE-312/CleartextLogging.expected @@ -90,14 +90,22 @@ edges | passwords.go:127:14:127:19 | config [y] | passwords.go:127:14:127:21 | selection of y | provenance | | | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:12:2:12:6 | query [pointer, Description] | provenance | | | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:14:14:14:18 | query [pointer, Description] | provenance | | +| protobuf.go:11:2:11:6 | definition of query [pointer, Description] | protobuf.go:15:14:15:18 | query [pointer, Description] | provenance | | | protobuf.go:12:2:12:6 | implicit dereference [Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | provenance | | | protobuf.go:12:2:12:6 | query [pointer, Description] | protobuf.go:12:2:12:6 | implicit dereference [Description] | provenance | | | protobuf.go:12:22:12:29 | password | protobuf.go:12:2:12:6 | implicit dereference [Description] | provenance | | +| protobuf.go:14:14:14:18 | query [pointer, Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | provenance | | | protobuf.go:14:14:14:18 | query [pointer, Description] | protobuf.go:14:14:14:35 | call to GetDescription | provenance | | | protobuf.go:14:14:14:18 | query [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | provenance | | +| protobuf.go:15:14:15:18 | query [pointer, Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | provenance | | +| protobuf.go:15:14:15:18 | query [pointer, Description] | protos/query/query.pb.go:124:7:124:7 | definition of x [pointer, Description] | provenance | | +| protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | x [Reverse] [pointer, Description] | provenance | | | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | provenance | | | protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | protos/query/query.pb.go:119:10:119:22 | selection of Description | provenance | | +| protos/query/query.pb.go:119:10:119:10 | x [Reverse] [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [Reverse] [pointer, Description] | provenance | | | protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | provenance | | +| protos/query/query.pb.go:124:7:124:7 | definition of x [pointer, Description] | protos/query/query.pb.go:126:10:126:10 | x [Reverse] [pointer, Description] | provenance | | +| protos/query/query.pb.go:126:10:126:10 | x [Reverse] [pointer, Description] | protos/query/query.pb.go:124:7:124:7 | definition of x [Reverse] [pointer, Description] | provenance | | models | 1 | Source: net/http; Request; true; Header; ; ; ; remote; manual | nodes @@ -190,9 +198,17 @@ nodes | protobuf.go:12:22:12:29 | password | semmle.label | password | | protobuf.go:14:14:14:18 | query [pointer, Description] | semmle.label | query [pointer, Description] | | protobuf.go:14:14:14:35 | call to GetDescription | semmle.label | call to GetDescription | +| protobuf.go:15:14:15:18 | query [pointer, Description] | semmle.label | query [pointer, Description] | +| protos/query/query.pb.go:117:7:117:7 | definition of x [Reverse] [pointer, Description] | semmle.label | definition of x [Reverse] [pointer, Description] | | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | semmle.label | definition of x [pointer, Description] | | protos/query/query.pb.go:119:10:119:10 | implicit dereference [Description] | semmle.label | implicit dereference [Description] | +| protos/query/query.pb.go:119:10:119:10 | x [Reverse] [pointer, Description] | semmle.label | x [Reverse] [pointer, Description] | | protos/query/query.pb.go:119:10:119:10 | x [pointer, Description] | semmle.label | x [pointer, Description] | | protos/query/query.pb.go:119:10:119:22 | selection of Description | semmle.label | selection of Description | +| protos/query/query.pb.go:124:7:124:7 | definition of x [Reverse] [pointer, Description] | semmle.label | definition of x [Reverse] [pointer, Description] | +| protos/query/query.pb.go:124:7:124:7 | definition of x [pointer, Description] | semmle.label | definition of x [pointer, Description] | +| protos/query/query.pb.go:126:10:126:10 | x [Reverse] [pointer, Description] | semmle.label | x [Reverse] [pointer, Description] | subpaths +| protobuf.go:14:14:14:18 | query [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [Reverse] [pointer, Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | | protobuf.go:14:14:14:18 | query [pointer, Description] | protos/query/query.pb.go:117:7:117:7 | definition of x [pointer, Description] | protos/query/query.pb.go:119:10:119:22 | selection of Description | protobuf.go:14:14:14:35 | call to GetDescription | +| protobuf.go:15:14:15:18 | query [pointer, Description] | protos/query/query.pb.go:124:7:124:7 | definition of x [pointer, Description] | protos/query/query.pb.go:124:7:124:7 | definition of x [Reverse] [pointer, Description] | protobuf.go:11:2:11:6 | definition of query [pointer, Description] | diff --git a/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected b/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected index b666fbc8ea9bb..49874dc83bdb7 100644 --- a/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected +++ b/go/ql/test/query-tests/Security/CWE-322/InsecureHostKeyCallback.expected @@ -4,35 +4,68 @@ edges | InsecureHostKeyCallbackExample.go:32:3:34:3 | function literal | InsecureHostKeyCallbackExample.go:31:14:34:4 | type conversion | provenance | | | InsecureHostKeyCallbackExample.go:45:3:47:3 | function literal | InsecureHostKeyCallbackExample.go:52:20:52:48 | type conversion | provenance | | | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [Reverse] [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [Reverse] [pointer, HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [HostKeyCallback] | InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [pointer, HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [HostKeyCallback] | InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:62:20:62:27 | callback [Reverse] | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | provenance | | | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | provenance | | -| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Return] | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | provenance | | +| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:76:28:76:54 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:76:28:76:54 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | provenance | | | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | provenance | | -| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Return] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | provenance | | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | provenance | | | InsecureHostKeyCallbackExample.go:94:3:94:43 | ... := ...[0] | InsecureHostKeyCallbackExample.go:95:28:95:35 | callback | provenance | | +| InsecureHostKeyCallbackExample.go:102:2:102:17 | definition of insecureCallback | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:103:3:105:3 | function literal | InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | provenance | | | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | InsecureHostKeyCallbackExample.go:102:2:102:17 | definition of insecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:110:3:115:3 | function literal | InsecureHostKeyCallbackExample.go:109:31:115:4 | type conversion | provenance | | | InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | provenance | | | InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | provenance | | | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | provenance | | +| InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | provenance | | nodes | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | semmle.label | type conversion | | InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | semmle.label | function literal | @@ -43,25 +76,49 @@ nodes | InsecureHostKeyCallbackExample.go:45:3:47:3 | function literal | semmle.label | function literal | | InsecureHostKeyCallbackExample.go:52:20:52:48 | type conversion | semmle.label | type conversion | | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | semmle.label | definition of callback | +| InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback [Reverse] | semmle.label | definition of callback [Reverse] | +| InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [Reverse] [pointer, HostKeyCallback] | semmle.label | &... [Reverse] [pointer, HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:59:6:63:2 | &... [pointer, HostKeyCallback] | semmle.label | &... [pointer, HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [HostKeyCallback] | semmle.label | struct literal [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:59:7:63:2 | struct literal [Reverse] [HostKeyCallback] | semmle.label | struct literal [Reverse] [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | semmle.label | callback | +| InsecureHostKeyCallbackExample.go:62:20:62:27 | callback | semmle.label | callback | +| InsecureHostKeyCallbackExample.go:62:20:62:27 | callback [Reverse] | semmle.label | callback [Reverse] | | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | semmle.label | definition of callback | -| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Return] | semmle.label | definition of callback [Return] | +| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | semmle.label | definition of callback [Reverse] | +| InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | semmle.label | definition of callback [Reverse] | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | semmle.label | definition of config [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [HostKeyCallback] | semmle.label | definition of config [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | semmle.label | definition of config [Reverse] [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [HostKeyCallback] | semmle.label | definition of config [Reverse] [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | semmle.label | definition of config [Reverse] [pointer, HostKeyCallback] | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [Reverse] [pointer, HostKeyCallback] | semmle.label | definition of config [Reverse] [pointer, HostKeyCallback] | | InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | semmle.label | definition of config [pointer, HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:69:2:69:7 | definition of config [pointer, HostKeyCallback] | semmle.label | definition of config [pointer, HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | semmle.label | config [pointer, HostKeyCallback] | | InsecureHostKeyCallbackExample.go:76:3:76:8 | config [pointer, HostKeyCallback] | semmle.label | config [pointer, HostKeyCallback] | | InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | semmle.label | implicit dereference [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:76:3:76:8 | implicit dereference [HostKeyCallback] | semmle.label | implicit dereference [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:76:28:76:54 | call to InsecureIgnoreHostKey | semmle.label | call to InsecureIgnoreHostKey | | InsecureHostKeyCallbackExample.go:76:28:76:54 | call to InsecureIgnoreHostKey | semmle.label | call to InsecureIgnoreHostKey | | InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | semmle.label | config [pointer, HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | config [pointer, HostKeyCallback] | semmle.label | config [pointer, HostKeyCallback] | | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | semmle.label | implicit dereference [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [HostKeyCallback] | semmle.label | implicit dereference [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | semmle.label | implicit dereference [Reverse] [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | semmle.label | implicit dereference [Reverse] [HostKeyCallback] | +| InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | semmle.label | implicit dereference [Reverse] [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:78:3:78:8 | implicit dereference [Reverse] [HostKeyCallback] | semmle.label | implicit dereference [Reverse] [HostKeyCallback] | | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | semmle.label | callback | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback | semmle.label | callback | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | semmle.label | callback [Reverse] | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | semmle.label | callback [Reverse] | +| InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | semmle.label | callback [Reverse] | | InsecureHostKeyCallbackExample.go:78:28:78:35 | callback [Reverse] | semmle.label | callback [Reverse] | | InsecureHostKeyCallbackExample.go:92:28:92:54 | call to InsecureIgnoreHostKey | semmle.label | call to InsecureIgnoreHostKey | | InsecureHostKeyCallbackExample.go:94:3:94:43 | ... := ...[0] | semmle.label | ... := ...[0] | | InsecureHostKeyCallbackExample.go:95:28:95:35 | callback | semmle.label | callback | +| InsecureHostKeyCallbackExample.go:102:2:102:17 | definition of insecureCallback | semmle.label | definition of insecureCallback | | InsecureHostKeyCallbackExample.go:102:22:105:4 | type conversion | semmle.label | type conversion | | InsecureHostKeyCallbackExample.go:103:3:105:3 | function literal | semmle.label | function literal | | InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | semmle.label | insecureCallback | @@ -72,6 +129,10 @@ nodes | InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | semmle.label | call to InsecureIgnoreHostKey | | InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | semmle.label | potentiallySecureCallback | subpaths +| InsecureHostKeyCallbackExample.go:107:35:107:50 | insecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback [Reverse] | InsecureHostKeyCallbackExample.go:102:2:102:17 | definition of insecureCallback | +| InsecureHostKeyCallbackExample.go:117:35:117:59 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback [Reverse] | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | +| InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback | InsecureHostKeyCallbackExample.go:58:39:58:46 | definition of callback [Reverse] | InsecureHostKeyCallbackExample.go:118:35:118:61 | call to InsecureIgnoreHostKey | +| InsecureHostKeyCallbackExample.go:120:44:120:68 | potentiallySecureCallback | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback | InsecureHostKeyCallbackExample.go:68:48:68:55 | definition of callback [Reverse] | InsecureHostKeyCallbackExample.go:109:2:109:26 | definition of potentiallySecureCallback | #select | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | InsecureHostKeyCallbackExample.go:15:20:18:5 | type conversion | Configuring SSH ClientConfig with insecure HostKeyCallback implementation from $@. | InsecureHostKeyCallbackExample.go:16:4:18:4 | function literal | this source | | InsecureHostKeyCallbackExample.go:26:20:26:46 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:26:20:26:46 | call to InsecureIgnoreHostKey | InsecureHostKeyCallbackExample.go:26:20:26:46 | call to InsecureIgnoreHostKey | Configuring SSH ClientConfig with insecure HostKeyCallback implementation from $@. | InsecureHostKeyCallbackExample.go:26:20:26:46 | call to InsecureIgnoreHostKey | this source | diff --git a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected index 046eb1a6519c9..539e1070af887 100644 --- a/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected +++ b/go/ql/test/query-tests/Security/CWE-327/UnsafeTLS.expected @@ -54,28 +54,20 @@ edges | UnsafeTLS.go:336:26:336:58 | []type{args} [array] | UnsafeTLS.go:336:26:336:58 | call to append | provenance | MaD:3 | | UnsafeTLS.go:336:54:336:57 | selection of ID | UnsafeTLS.go:336:26:336:58 | []type{args} [array] | provenance | | | UnsafeTLS.go:342:13:342:38 | call to InsecureCipherSuites | UnsafeTLS.go:344:40:344:43 | selection of ID | provenance | | -| UnsafeTLS.go:343:21:343:21 | cipherSuites = phi(def@341:3, def@344:4) [array] | UnsafeTLS.go:344:19:344:44 | call to append [Reverse] [array] | provenance | | -| UnsafeTLS.go:343:21:343:21 | cipherSuites = phi(def@341:3, def@344:4) [array] | UnsafeTLS.go:344:26:344:37 | cipherSuites [array] | provenance | | | UnsafeTLS.go:344:19:344:44 | []type{args} [array] | UnsafeTLS.go:344:19:344:44 | call to append | provenance | MaD:3 | | UnsafeTLS.go:344:19:344:44 | []type{args} [array] | UnsafeTLS.go:344:19:344:44 | call to append [array] | provenance | MaD:3 | | UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:344:26:344:37 | cipherSuites | provenance | | | UnsafeTLS.go:344:19:344:44 | call to append | UnsafeTLS.go:346:25:346:36 | cipherSuites | provenance | | -| UnsafeTLS.go:344:19:344:44 | call to append [Reverse] [array] | UnsafeTLS.go:343:21:343:21 | cipherSuites = phi(def@341:3, def@344:4) [array] | provenance | MaD:1 | -| UnsafeTLS.go:344:19:344:44 | call to append [array] | UnsafeTLS.go:344:19:344:44 | call to append [Reverse] [array] | provenance | | | UnsafeTLS.go:344:19:344:44 | call to append [array] | UnsafeTLS.go:344:26:344:37 | cipherSuites [array] | provenance | | | UnsafeTLS.go:344:26:344:37 | cipherSuites | UnsafeTLS.go:344:19:344:44 | call to append | provenance | MaD:2 | | UnsafeTLS.go:344:26:344:37 | cipherSuites [array] | UnsafeTLS.go:344:19:344:44 | call to append | provenance | MaD:1 | | UnsafeTLS.go:344:26:344:37 | cipherSuites [array] | UnsafeTLS.go:344:19:344:44 | call to append [array] | provenance | MaD:1 | | UnsafeTLS.go:344:40:344:43 | selection of ID | UnsafeTLS.go:344:19:344:44 | []type{args} [array] | provenance | | | UnsafeTLS.go:351:13:351:38 | call to InsecureCipherSuites | UnsafeTLS.go:353:40:353:51 | selection of ID | provenance | | -| UnsafeTLS.go:352:18:352:18 | cipherSuites = phi(def@350:3, def@353:4) [array] | UnsafeTLS.go:353:19:353:52 | call to append [Reverse] [array] | provenance | | -| UnsafeTLS.go:352:18:352:18 | cipherSuites = phi(def@350:3, def@353:4) [array] | UnsafeTLS.go:353:26:353:37 | cipherSuites [array] | provenance | | | UnsafeTLS.go:353:19:353:52 | []type{args} [array] | UnsafeTLS.go:353:19:353:52 | call to append | provenance | MaD:3 | | UnsafeTLS.go:353:19:353:52 | []type{args} [array] | UnsafeTLS.go:353:19:353:52 | call to append [array] | provenance | MaD:3 | | UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:353:26:353:37 | cipherSuites | provenance | | | UnsafeTLS.go:353:19:353:52 | call to append | UnsafeTLS.go:355:25:355:36 | cipherSuites | provenance | | -| UnsafeTLS.go:353:19:353:52 | call to append [Reverse] [array] | UnsafeTLS.go:352:18:352:18 | cipherSuites = phi(def@350:3, def@353:4) [array] | provenance | MaD:1 | -| UnsafeTLS.go:353:19:353:52 | call to append [array] | UnsafeTLS.go:353:19:353:52 | call to append [Reverse] [array] | provenance | | | UnsafeTLS.go:353:19:353:52 | call to append [array] | UnsafeTLS.go:353:26:353:37 | cipherSuites [array] | provenance | | | UnsafeTLS.go:353:26:353:37 | cipherSuites | UnsafeTLS.go:353:19:353:52 | call to append | provenance | MaD:2 | | UnsafeTLS.go:353:26:353:37 | cipherSuites [array] | UnsafeTLS.go:353:19:353:52 | call to append | provenance | MaD:1 | @@ -166,20 +158,16 @@ nodes | UnsafeTLS.go:336:26:336:58 | call to append | semmle.label | call to append | | UnsafeTLS.go:336:54:336:57 | selection of ID | semmle.label | selection of ID | | UnsafeTLS.go:342:13:342:38 | call to InsecureCipherSuites | semmle.label | call to InsecureCipherSuites | -| UnsafeTLS.go:343:21:343:21 | cipherSuites = phi(def@341:3, def@344:4) [array] | semmle.label | cipherSuites = phi(def@341:3, def@344:4) [array] | | UnsafeTLS.go:344:19:344:44 | []type{args} [array] | semmle.label | []type{args} [array] | | UnsafeTLS.go:344:19:344:44 | call to append | semmle.label | call to append | -| UnsafeTLS.go:344:19:344:44 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | UnsafeTLS.go:344:19:344:44 | call to append [array] | semmle.label | call to append [array] | | UnsafeTLS.go:344:26:344:37 | cipherSuites | semmle.label | cipherSuites | | UnsafeTLS.go:344:26:344:37 | cipherSuites [array] | semmle.label | cipherSuites [array] | | UnsafeTLS.go:344:40:344:43 | selection of ID | semmle.label | selection of ID | | UnsafeTLS.go:346:25:346:36 | cipherSuites | semmle.label | cipherSuites | | UnsafeTLS.go:351:13:351:38 | call to InsecureCipherSuites | semmle.label | call to InsecureCipherSuites | -| UnsafeTLS.go:352:18:352:18 | cipherSuites = phi(def@350:3, def@353:4) [array] | semmle.label | cipherSuites = phi(def@350:3, def@353:4) [array] | | UnsafeTLS.go:353:19:353:52 | []type{args} [array] | semmle.label | []type{args} [array] | | UnsafeTLS.go:353:19:353:52 | call to append | semmle.label | call to append | -| UnsafeTLS.go:353:19:353:52 | call to append [Reverse] [array] | semmle.label | call to append [Reverse] [array] | | UnsafeTLS.go:353:19:353:52 | call to append [array] | semmle.label | call to append [array] | | UnsafeTLS.go:353:26:353:37 | cipherSuites | semmle.label | cipherSuites | | UnsafeTLS.go:353:26:353:37 | cipherSuites [array] | semmle.label | cipherSuites [array] | diff --git a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected index 7f59ae2518aaa..70f82008af44d 100644 --- a/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected +++ b/go/ql/test/query-tests/Security/CWE-640/EmailInjection.expected @@ -11,20 +11,26 @@ | main.go:89:37:89:50 | untrustedInput | main.go:82:21:82:31 | call to Referer | main.go:89:37:89:50 | untrustedInput | Email content may contain $@. | main.go:82:21:82:31 | call to Referer | untrusted input | | main.go:93:16:93:23 | content2 | main.go:82:21:82:31 | call to Referer | main.go:93:16:93:23 | content2 | Email content may contain $@. | main.go:82:21:82:31 | call to Referer | untrusted input | edges -| EmailBad.go:8:34:8:34 | definition of r [Return] [pointer, Header] | main.go:19:6:19:6 | definition of r [pointer, Header] | provenance | | +| EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | main.go:19:6:19:6 | definition of r [pointer, Header] | provenance | | +| EmailBad.go:8:34:8:34 | definition of r [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | provenance | | | EmailBad.go:8:34:8:34 | definition of r [pointer, Header] | EmailBad.go:9:10:9:10 | r [pointer, Header] | provenance | | | EmailBad.go:9:10:9:10 | implicit dereference [Header] | EmailBad.go:9:10:9:17 | selection of Header | provenance | | | EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | provenance | | -| EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [Return] [pointer, Header] | provenance | | +| EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | provenance | | +| EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | provenance | | +| EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | provenance | | | EmailBad.go:9:10:9:10 | r [pointer, Header] | EmailBad.go:9:10:9:10 | implicit dereference [Header] | provenance | | +| EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:17 | selection of Header [Reverse] | provenance | | | EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:17 | selection of Header [Reverse] | provenance | Src:MaD:1 | | EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | provenance | MaD:5 | | EmailBad.go:9:10:9:17 | selection of Header | EmailBad.go:9:10:9:29 | call to Get | provenance | Src:MaD:1 MaD:5 | | EmailBad.go:9:10:9:17 | selection of Header [Reverse] | EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | provenance | | +| EmailBad.go:9:10:9:17 | selection of Header [Reverse] | EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | provenance | | | EmailBad.go:9:10:9:29 | call to Get | EmailBad.go:12:56:12:67 | type conversion | provenance | | | EmailBad.go:9:10:9:29 | call to Get | EmailBad.go:12:56:12:67 | type conversion | provenance | | | main.go:19:6:19:6 | definition of r [pointer, Header] | main.go:22:10:22:10 | r [pointer, Header] | provenance | | | main.go:22:10:22:10 | r [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [pointer, Header] | provenance | | +| main.go:22:10:22:10 | r [pointer, Header] | main.go:19:6:19:6 | definition of r [pointer, Header] | provenance | | | main.go:29:21:29:31 | call to Referer | main.go:31:57:31:78 | type conversion | provenance | Src:MaD:2 | | main.go:37:21:37:31 | call to Referer | main.go:41:25:41:38 | untrustedInput | provenance | Src:MaD:2 | | main.go:41:25:41:38 | untrustedInput | main.go:40:3:40:7 | definition of write | provenance | MaD:4 | @@ -49,15 +55,19 @@ models | 4 | Summary: io; ; false; WriteString; ; ; Argument[1]; Argument[0]; taint; manual | | 5 | Summary: net/http; Header; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | nodes -| EmailBad.go:8:34:8:34 | definition of r [Return] [pointer, Header] | semmle.label | definition of r [Return] [pointer, Header] | +| EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | semmle.label | definition of r [Reverse] [pointer, Header] | +| EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | semmle.label | definition of r [Reverse] [pointer, Header] | | EmailBad.go:8:34:8:34 | definition of r [pointer, Header] | semmle.label | definition of r [pointer, Header] | | EmailBad.go:9:10:9:10 | implicit dereference [Header] | semmle.label | implicit dereference [Header] | | EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | semmle.label | implicit dereference [Reverse] [Header] | +| EmailBad.go:9:10:9:10 | implicit dereference [Reverse] [Header] | semmle.label | implicit dereference [Reverse] [Header] | +| EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | semmle.label | r [Reverse] [pointer, Header] | | EmailBad.go:9:10:9:10 | r [Reverse] [pointer, Header] | semmle.label | r [Reverse] [pointer, Header] | | EmailBad.go:9:10:9:10 | r [pointer, Header] | semmle.label | r [pointer, Header] | | EmailBad.go:9:10:9:17 | selection of Header | semmle.label | selection of Header | | EmailBad.go:9:10:9:17 | selection of Header | semmle.label | selection of Header | | EmailBad.go:9:10:9:17 | selection of Header [Reverse] | semmle.label | selection of Header [Reverse] | +| EmailBad.go:9:10:9:17 | selection of Header [Reverse] | semmle.label | selection of Header [Reverse] | | EmailBad.go:9:10:9:29 | call to Get | semmle.label | call to Get | | EmailBad.go:9:10:9:29 | call to Get | semmle.label | call to Get | | EmailBad.go:12:56:12:67 | type conversion | semmle.label | type conversion | @@ -87,3 +97,4 @@ nodes | main.go:91:48:91:61 | untrustedInput | semmle.label | untrustedInput | | main.go:93:16:93:23 | content2 | semmle.label | content2 | subpaths +| main.go:22:10:22:10 | r [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [pointer, Header] | EmailBad.go:8:34:8:34 | definition of r [Reverse] [pointer, Header] | main.go:19:6:19:6 | definition of r [pointer, Header] | diff --git a/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected b/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected index 54a552c39e18f..b073f2ae457a8 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-299/DisabledRevocationChecking.expected @@ -1,17 +1,15 @@ #select | DisabledRevocationChecking.java:17:12:17:16 | false | DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | DisabledRevocationChecking.java:28:33:28:36 | flag | This disables revocation checking. | edges -| DisabledRevocationChecking.java:16:15:16:39 | parameter this [Return] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | provenance | | -| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [Reverse] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:16:15:16:39 | parameter this [Return] : DisabledRevocationChecking [flag] : Boolean | provenance | | -| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [Reverse] : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:16:15:16:39 | parameter this [Reverse] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | provenance | | +| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:16:15:16:39 | parameter this [Reverse] : DisabledRevocationChecking [flag] : Boolean | provenance | | | DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | provenance | | | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | provenance | | | DisabledRevocationChecking.java:22:5:22:31 | this <.method> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | provenance | | | DisabledRevocationChecking.java:25:15:25:22 | parameter this : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | provenance | | | DisabledRevocationChecking.java:28:33:28:36 | this <.field> : DisabledRevocationChecking [flag] : Boolean | DisabledRevocationChecking.java:28:33:28:36 | flag | provenance | | nodes -| DisabledRevocationChecking.java:16:15:16:39 | parameter this [Return] : DisabledRevocationChecking [flag] : Boolean | semmle.label | parameter this [Return] : DisabledRevocationChecking [flag] : Boolean | -| DisabledRevocationChecking.java:17:5:17:8 | this <.field> [Reverse] : DisabledRevocationChecking [flag] : Boolean | semmle.label | this <.field> [Reverse] : DisabledRevocationChecking [flag] : Boolean | +| DisabledRevocationChecking.java:16:15:16:39 | parameter this [Reverse] : DisabledRevocationChecking [flag] : Boolean | semmle.label | parameter this [Reverse] : DisabledRevocationChecking [flag] : Boolean | | DisabledRevocationChecking.java:17:5:17:8 | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | semmle.label | this <.field> [post update] : DisabledRevocationChecking [flag] : Boolean | | DisabledRevocationChecking.java:17:12:17:16 | false : Boolean | semmle.label | false : Boolean | | DisabledRevocationChecking.java:21:5:21:31 | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | semmle.label | this <.method> [post update] : DisabledRevocationChecking [flag] : Boolean | diff --git a/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected b/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected index 6827cdc2c4b45..79b07a47d2351 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-400/LocalThreadResourceAbuse.expected @@ -6,8 +6,7 @@ edges | ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | provenance | | | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | provenance | | -| ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | provenance | | -| ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | provenance | Sink:MaD:1 | @@ -17,13 +16,12 @@ nodes | ThreadResourceAbuse.java:37:25:37:73 | getInitParameter(...) : String | semmle.label | getInitParameter(...) : String | | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | semmle.label | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | semmle.label | delayTime : Number | -| ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | +| ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | semmle.label | waitTime : Number | -| ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | semmle.label | this [Reverse] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | semmle.label | this [post update] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | semmle.label | waitTime : Number | | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | semmle.label | this <.field> : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:74:18:74:25 | waitTime | semmle.label | waitTime | subpaths -| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | +| ThreadResourceAbuse.java:40:28:40:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:40:4:40:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | diff --git a/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected b/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected index b0ff68f72509d..0627999ddb912 100644 --- a/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected +++ b/java/ql/test/experimental/query-tests/security/CWE-400/ThreadResourceAbuse.expected @@ -16,8 +16,7 @@ edges | ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | provenance | | | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | provenance | | -| ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | provenance | | -| ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | provenance | | +| ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | provenance | | | ThreadResourceAbuse.java:74:18:74:25 | this <.field> : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:74:18:74:25 | waitTime | provenance | Sink:MaD:1 | @@ -33,8 +32,7 @@ edges | ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | provenance | Config | | ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | ThreadResourceAbuse.java:233:17:233:26 | retryAfter | provenance | Sink:MaD:1 | | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | provenance | | -| UploadListener.java:16:3:16:13 | this <.field> [Reverse] : UploadListener [slowUploads] : Number | UploadListener.java:15:9:15:22 | parameter this [Return] : UploadListener [slowUploads] : Number | provenance | | -| UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | UploadListener.java:16:3:16:13 | this <.field> [Reverse] : UploadListener [slowUploads] : Number | provenance | | +| UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | UploadListener.java:15:9:15:22 | parameter this [Reverse] : UploadListener [slowUploads] : Number | provenance | | | UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | provenance | | | UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | provenance | | | UploadListener.java:29:3:29:11 | this <.field> : UploadListener [slowUploads] : Number | UploadListener.java:30:3:30:15 | this <.field> : UploadListener [slowUploads] : Number | provenance | | @@ -56,9 +54,8 @@ nodes | ThreadResourceAbuse.java:29:82:29:114 | getParameter(...) : String | semmle.label | getParameter(...) : String | | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | semmle.label | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | semmle.label | delayTime : Number | -| ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | +| ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | semmle.label | waitTime : Number | -| ThreadResourceAbuse.java:67:4:67:7 | this [Reverse] : UncheckedSyncAction [waitTime] : Number | semmle.label | this [Reverse] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:67:4:67:7 | this [post update] : UncheckedSyncAction [waitTime] : Number | semmle.label | this [post update] : UncheckedSyncAction [waitTime] : Number | | ThreadResourceAbuse.java:67:20:67:27 | waitTime : Number | semmle.label | waitTime : Number | | ThreadResourceAbuse.java:71:15:71:17 | parameter this : UncheckedSyncAction [waitTime] : Number | semmle.label | parameter this : UncheckedSyncAction [waitTime] : Number | @@ -78,9 +75,8 @@ nodes | ThreadResourceAbuse.java:230:3:230:12 | retryAfter : Number | semmle.label | retryAfter : Number | | ThreadResourceAbuse.java:230:3:230:20 | ...*=... : Number | semmle.label | ...*=... : Number | | ThreadResourceAbuse.java:233:17:233:26 | retryAfter | semmle.label | retryAfter | -| UploadListener.java:15:9:15:22 | parameter this [Return] : UploadListener [slowUploads] : Number | semmle.label | parameter this [Return] : UploadListener [slowUploads] : Number | +| UploadListener.java:15:9:15:22 | parameter this [Reverse] : UploadListener [slowUploads] : Number | semmle.label | parameter this [Reverse] : UploadListener [slowUploads] : Number | | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | semmle.label | sleepMilliseconds : Number | -| UploadListener.java:16:3:16:13 | this <.field> [Reverse] : UploadListener [slowUploads] : Number | semmle.label | this <.field> [Reverse] : UploadListener [slowUploads] : Number | | UploadListener.java:16:3:16:13 | this <.field> [post update] : UploadListener [slowUploads] : Number | semmle.label | this <.field> [post update] : UploadListener [slowUploads] : Number | | UploadListener.java:16:17:16:33 | sleepMilliseconds : Number | semmle.label | sleepMilliseconds : Number | | UploadListener.java:28:14:28:19 | parameter this : UploadListener [slowUploads] : Number | semmle.label | parameter this : UploadListener [slowUploads] : Number | @@ -91,6 +87,6 @@ nodes | UploadListener.java:35:18:35:28 | slowUploads | semmle.label | slowUploads | | UploadListener.java:35:18:35:28 | this <.field> : UploadListener [slowUploads] : Number | semmle.label | this <.field> : UploadListener [slowUploads] : Number | subpaths -| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Return] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | -| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | UploadListener.java:15:9:15:22 | parameter this [Return] : UploadListener [slowUploads] : Number | ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | +| ThreadResourceAbuse.java:21:28:21:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:21:4:21:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | +| ThreadResourceAbuse.java:30:28:30:36 | delayTime : Number | ThreadResourceAbuse.java:66:30:66:41 | waitTime : Number | ThreadResourceAbuse.java:66:10:66:28 | parameter this [Reverse] : UncheckedSyncAction [waitTime] : Number | ThreadResourceAbuse.java:30:4:30:37 | new UncheckedSyncAction(...) : UncheckedSyncAction [waitTime] : Number | +| ThreadResourceAbuse.java:209:49:209:59 | uploadDelay : Number | UploadListener.java:15:24:15:44 | sleepMilliseconds : Number | UploadListener.java:15:9:15:22 | parameter this [Reverse] : UploadListener [slowUploads] : Number | ThreadResourceAbuse.java:209:30:209:87 | new UploadListener(...) : UploadListener [slowUploads] : Number | diff --git a/java/ql/test/library-tests/dataflow/capture/inlinetest.expected b/java/ql/test/library-tests/dataflow/capture/inlinetest.expected index 6042323685c70..3d10253df4cdf 100644 --- a/java/ql/test/library-tests/dataflow/capture/inlinetest.expected +++ b/java/ql/test/library-tests/dataflow/capture/inlinetest.expected @@ -15,12 +15,12 @@ edges | B.java:13:16:13:29 | ...->... [post update] : new Consumer(...) { ... } [List l2, ] : String | B.java:13:16:13:29 | List l2 : ArrayList [] : String | provenance | | | B.java:13:16:13:29 | List l2 : ArrayList [] : String | B.java:14:10:14:11 | l2 : ArrayList [] : String | provenance | | | B.java:13:21:13:22 | l2 [post update] : ArrayList [] : String | B.java:13:21:13:22 | this : new Consumer(...) { ... } [List l2, ] : String | provenance | | -| B.java:13:21:13:22 | this : new Consumer(...) { ... } [List l2, ] : String | B.java:13:16:13:29 | parameter this [Return] : new Consumer(...) { ... } [List l2, ] : String | provenance | | +| B.java:13:21:13:22 | this : new Consumer(...) { ... } [List l2, ] : String | B.java:13:16:13:29 | parameter this [Reverse] : new Consumer(...) { ... } [List l2, ] : String | provenance | | | B.java:13:28:13:28 | e : String | B.java:13:21:13:22 | l2 [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:14:10:14:11 | l2 : ArrayList [] : String | B.java:14:10:14:18 | get(...) | provenance | MaD:3 | | B.java:22:26:22:26 | x : String | B.java:22:68:22:68 | x : String | provenance | | | B.java:22:56:22:60 | other [post update] : B [bf1] : String | B.java:22:56:22:60 | this : new Consumer(...) { ... } [B other, bf1] : String | provenance | | -| B.java:22:56:22:60 | this : new Consumer(...) { ... } [B other, bf1] : String | B.java:22:26:22:71 | parameter this [Return] : new Consumer(...) { ... } [B other, bf1] : String | provenance | | +| B.java:22:56:22:60 | this : new Consumer(...) { ... } [B other, bf1] : String | B.java:22:26:22:71 | parameter this [Reverse] : new Consumer(...) { ... } [B other, bf1] : String | provenance | | | B.java:22:68:22:68 | x : String | B.java:22:56:22:60 | other [post update] : B [bf1] : String | provenance | | | B.java:30:5:30:5 | B other : B [bf1] : String | B.java:34:10:34:14 | other : B [bf1] : String | provenance | | | B.java:30:5:30:5 | f [post update] : new Consumer(...) { ... } [B other, bf1] : String | B.java:30:5:30:5 | B other : B [bf1] : String | provenance | | @@ -39,16 +39,16 @@ edges | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | out : HashMap [] : String | provenance | | | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | ...->... [Reverse] : new BiConsumer(...) { ... } [out, ] : String | provenance | | | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | out : HashMap [] : String | provenance | | -| B.java:39:17:39:56 | out : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | provenance | | -| B.java:39:17:39:56 | out : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | provenance | | -| B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | provenance | | -| B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | provenance | | +| B.java:39:17:39:56 | out : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | provenance | | +| B.java:39:17:39:56 | out : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | provenance | | +| B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | provenance | | +| B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | provenance | | | B.java:39:18:39:20 | key : String | B.java:39:43:39:45 | key : String | provenance | | | B.java:39:23:39:27 | value : String | B.java:39:48:39:52 | value : String | provenance | | | B.java:39:35:39:37 | out [post update] : HashMap [] : String | B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | provenance | | | B.java:39:35:39:37 | out [post update] : HashMap [] : String | B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | provenance | | -| B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | provenance | | -| B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | provenance | | +| B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | provenance | | +| B.java:39:35:39:37 | this : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | provenance | | | B.java:39:43:39:45 | key : String | B.java:39:35:39:37 | out [post update] : HashMap [] : String | provenance | MaD:6 | | B.java:39:48:39:52 | value : String | B.java:39:35:39:37 | out [post update] : HashMap [] : String | provenance | MaD:7 | | B.java:45:5:45:6 | m1 [post update] : HashMap [] : String | B.java:46:13:46:14 | m1 : HashMap [] : String | provenance | | @@ -73,34 +73,44 @@ edges | B.java:66:5:66:5 | r : new Runnable(...) { ... } [param] : String | B.java:61:18:65:5 | parameter this : new Runnable(...) { ... } [param] : String | provenance | | | B.java:71:19:71:23 | other [post update] : B [elem] : String | B.java:74:10:74:14 | other : B [elem] : String | provenance | | | B.java:74:10:74:14 | other : B [elem] : String | B.java:74:10:74:19 | other.elem | provenance | | -| B.java:77:22:77:28 | param [Return] : B [elem] : String | B.java:71:19:71:23 | other [post update] : B [elem] : String | provenance | | +| B.java:77:22:77:28 | param [Reverse] : B [elem] : String | B.java:71:19:71:23 | other [post update] : B [elem] : String | provenance | | | B.java:78:18:81:5 | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | param [Reverse] : B [elem] : String | provenance | | -| B.java:78:18:81:5 | param [Reverse] : B [elem] : String | B.java:77:22:77:28 | param [Return] : B [elem] : String | provenance | | -| B.java:78:18:81:5 | parameter this [Return] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:78:18:81:5 | param [Reverse] : B [elem] : String | B.java:77:22:77:28 | param [Reverse] : B [elem] : String | provenance | | +| B.java:78:18:81:5 | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:78:18:81:5 | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:78:18:81:5 | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | provenance | | | B.java:80:7:80:11 | param [post update] : B [elem] : String | B.java:80:7:80:11 | this : new Runnable(...) { ... } [param, elem] : String | provenance | | -| B.java:80:7:80:11 | this : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | parameter this [Return] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:80:7:80:11 | this : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | | B.java:80:20:80:39 | source(...) : String | B.java:80:7:80:11 | param [post update] : B [elem] : String | provenance | | -| B.java:82:5:82:5 | param : B [elem] : String | B.java:77:22:77:28 | param [Return] : B [elem] : String | provenance | | -| B.java:82:5:82:5 | param [Reverse] : B [elem] : String | B.java:77:22:77:28 | param [Return] : B [elem] : String | provenance | | +| B.java:82:5:82:5 | param : B [elem] : String | B.java:77:22:77:28 | param [Reverse] : B [elem] : String | provenance | | +| B.java:82:5:82:5 | param [Reverse] : B [elem] : String | B.java:77:22:77:28 | param [Reverse] : B [elem] : String | provenance | | +| B.java:82:5:82:5 | param [Reverse] : B [elem] : String | B.java:77:22:77:28 | param [Reverse] : B [elem] : String | provenance | | | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | +| B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | param [Reverse] : B [elem] : String | provenance | | | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | param [Reverse] : B [elem] : String | provenance | | +| B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | B.java:78:18:81:5 | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | | B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | param : B [elem] : String | provenance | | | B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | provenance | | | B.java:88:22:88:44 | parameter this : new Runnable(...) { ... } [B b, elem] : String | B.java:88:35:88:35 | this : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:88:35:88:35 | b : B [elem] : String | B.java:88:35:88:40 | b.elem | provenance | | | B.java:88:35:88:35 | this : new Runnable(...) { ... } [B b, elem] : String | B.java:88:35:88:35 | b : B [elem] : String | provenance | | -| B.java:89:20:89:52 | parameter this [Return] : new Runnable(...) { ... } [B b, elem] : String | B.java:96:5:96:5 | r [post update] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:89:20:89:52 | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:89:20:89:52 | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:89:20:89:52 | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:96:5:96:5 | r [post update] : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:89:28:89:28 | b [post update] : B [elem] : String | B.java:89:28:89:28 | this : new Runnable(...) { ... } [B b, elem] : String | provenance | | -| B.java:89:28:89:28 | this : new Runnable(...) { ... } [B b, elem] : String | B.java:89:20:89:52 | parameter this [Return] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:89:28:89:28 | this : new Runnable(...) { ... } [B b, elem] : String | B.java:89:20:89:52 | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:89:37:89:49 | source(...) : String | B.java:89:28:89:28 | b [post update] : B [elem] : String | provenance | | | B.java:91:11:91:13 | B b : B [elem] : String | B.java:92:11:92:15 | B b : B [elem] : String | provenance | | | B.java:91:11:91:13 | src [post update] : new Runnable(...) { ... } [B b, elem] : String | B.java:91:11:91:13 | B b : B [elem] : String | provenance | | | B.java:92:11:92:15 | B b : B [elem] : String | B.java:92:11:92:15 | sink2 : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:92:11:92:15 | sink2 : new Runnable(...) { ... } [B b, elem] : String | B.java:95:14:95:23 | r : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:95:14:95:23 | r : new Runnable(...) { ... } [B b, elem] : String | B.java:96:5:96:5 | r : new Runnable(...) { ... } [B b, elem] : String | provenance | | -| B.java:95:14:95:23 | r [Return] : new Runnable(...) { ... } [B b, elem] : String | B.java:91:11:91:13 | src [post update] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:95:14:95:23 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:91:11:91:13 | src [post update] : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:96:5:96:5 | r : new Runnable(...) { ... } [B b, elem] : String | B.java:88:22:88:44 | parameter this : new Runnable(...) { ... } [B b, elem] : String | provenance | | -| B.java:96:5:96:5 | r [post update] : new Runnable(...) { ... } [B b, elem] : String | B.java:95:14:95:23 | r [Return] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:95:14:95:23 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | B.java:95:14:95:23 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | +| B.java:96:5:96:5 | r [post update] : new Runnable(...) { ... } [B b, elem] : String | B.java:95:14:95:23 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | provenance | | | B.java:102:5:102:6 | l1 [post update] : ArrayList [] : String | B.java:103:12:103:13 | l1 : ArrayList [] : String | provenance | | | B.java:102:12:102:29 | source(...) : String | B.java:102:5:102:6 | l1 [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:103:5:103:6 | l2 [post update] : ArrayList [, ] : String | B.java:107:5:107:6 | l2 : ArrayList [, ] : String | provenance | | @@ -133,26 +143,26 @@ edges | B.java:107:31:111:5 | String s : String | B.java:107:31:111:5 | ...->... : new Consumer(...) { ... } [String s] : String | provenance | | | B.java:107:31:111:5 | parameter this : new Consumer(...) { ... } [String s] : String | B.java:108:12:108:12 | this : new Consumer(...) { ... } [String s] : String | provenance | | | B.java:107:31:111:5 | parameter this : new Consumer(...) { ... } [String s] : String | B.java:110:16:110:16 | this : new Consumer(...) { ... } [String s] : String | provenance | | -| B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out1, ] : String | B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out1, ] : String | provenance | | -| B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out2, ] : String | B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out2, ] : String | provenance | | +| B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out1, ] : String | B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out1, ] : String | provenance | | +| B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out2, ] : String | B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out2, ] : String | provenance | | | B.java:107:31:111:5 | this : new Consumer>(...) { ... } [String s] : String | B.java:107:31:111:5 | String s : String | provenance | | | B.java:108:12:108:12 | this : new Consumer(...) { ... } [String s] : String | B.java:108:12:108:12 | s | provenance | | | B.java:109:7:109:10 | out1 [post update] : ArrayList [] : String | B.java:109:7:109:10 | this : new Consumer(...) { ... } [List out1, ] : String | provenance | | -| B.java:109:7:109:10 | this : new Consumer(...) { ... } [List out1, ] : String | B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out1, ] : String | provenance | | +| B.java:109:7:109:10 | this : new Consumer(...) { ... } [List out1, ] : String | B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out1, ] : String | provenance | | | B.java:109:16:109:16 | x : String | B.java:109:7:109:10 | out1 [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:110:7:110:10 | out2 [post update] : ArrayList [] : String | B.java:110:7:110:10 | this : new Consumer(...) { ... } [List out2, ] : String | provenance | | -| B.java:110:7:110:10 | this : new Consumer(...) { ... } [List out2, ] : String | B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out2, ] : String | provenance | | +| B.java:110:7:110:10 | this : new Consumer(...) { ... } [List out2, ] : String | B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out2, ] : String | provenance | | | B.java:110:16:110:16 | s : String | B.java:110:7:110:10 | out2 [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:110:16:110:16 | this : new Consumer(...) { ... } [String s] : String | B.java:110:16:110:16 | s : String | provenance | | | B.java:112:10:112:13 | out1 : ArrayList [] : String | B.java:112:10:112:20 | get(...) | provenance | MaD:3 | | B.java:113:10:113:13 | out2 : ArrayList [] : String | B.java:113:10:113:20 | get(...) | provenance | MaD:3 | -| B.java:126:19:126:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l1, ] : String | B.java:136:5:136:5 | r [post update] : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | +| B.java:126:19:126:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l1, ] : String | B.java:136:5:136:5 | r [post update] : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | | B.java:127:9:127:10 | l1 [post update] : ArrayList [] : String | B.java:127:9:127:10 | this : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | -| B.java:127:9:127:10 | this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:126:19:126:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | +| B.java:127:9:127:10 | this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:126:19:126:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | | B.java:127:16:127:29 | source(...) : String | B.java:127:9:127:10 | l1 [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:130:19:130:22 | parameter this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:131:16:131:17 | this : new TwoRuns(...) { ... } [List l1, ] : String | provenance | | | B.java:131:9:131:10 | l2 [post update] : ArrayList [] : String | B.java:131:9:131:10 | this : new TwoRuns(...) { ... } [List l2, ] : String | provenance | | -| B.java:131:9:131:10 | this : new TwoRuns(...) { ... } [List l2, ] : String | B.java:130:19:130:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l2, ] : String | provenance | | +| B.java:131:9:131:10 | this : new TwoRuns(...) { ... } [List l2, ] : String | B.java:130:19:130:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l2, ] : String | provenance | | | B.java:131:16:131:17 | l1 : ArrayList [] : String | B.java:131:16:131:24 | get(...) : String | provenance | MaD:3 | | B.java:131:16:131:17 | this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:131:16:131:17 | l1 : ArrayList [] : String | provenance | | | B.java:131:16:131:24 | get(...) : String | B.java:131:9:131:10 | l2 [post update] : ArrayList [] : String | provenance | MaD:2 | @@ -166,8 +176,7 @@ edges | B.java:138:10:138:11 | l2 : ArrayList [] : String | B.java:138:10:138:18 | get(...) | provenance | MaD:3 | | B.java:142:16:142:31 | source(...) : String | B.java:148:17:148:29 | String s : String | provenance | | | B.java:145:7:145:13 | parameter this : MyLocal [String s] : String | B.java:145:28:145:28 | this : MyLocal [String s] : String | provenance | | -| B.java:145:19:145:22 | this [Reverse] : MyLocal [f] : String | B.java:145:7:145:13 | parameter this [Return] : MyLocal [f] : String | provenance | | -| B.java:145:19:145:22 | this [post update] : MyLocal [f] : String | B.java:145:19:145:22 | this [Reverse] : MyLocal [f] : String | provenance | | +| B.java:145:19:145:22 | this [post update] : MyLocal [f] : String | B.java:145:7:145:13 | parameter this [Reverse] : MyLocal [f] : String | provenance | | | B.java:145:28:145:28 | s : String | B.java:145:19:145:22 | this [post update] : MyLocal [f] : String | provenance | | | B.java:145:28:145:28 | this : MyLocal [String s] : String | B.java:145:28:145:28 | s : String | provenance | | | B.java:146:14:146:17 | parameter this : MyLocal [f] : String | B.java:146:30:146:33 | this : MyLocal [f] : String | provenance | | @@ -184,8 +193,7 @@ edges | B.java:154:17:154:28 | source(...) : String | B.java:175:5:175:6 | String s2 : String | provenance | | | B.java:158:7:158:13 | parameter this : MyLocal [String s1] : String | B.java:159:18:159:19 | this : MyLocal [String s1] : String | provenance | | | B.java:158:7:158:13 | parameter this : MyLocal [String s2] : String | B.java:160:14:160:15 | this : MyLocal [String s2] : String | provenance | | -| B.java:159:9:159:12 | this [Reverse] : MyLocal [f] : String | B.java:158:7:158:13 | parameter this [Return] : MyLocal [f] : String | provenance | | -| B.java:159:9:159:12 | this [post update] : MyLocal [f] : String | B.java:159:9:159:12 | this [Reverse] : MyLocal [f] : String | provenance | | +| B.java:159:9:159:12 | this [post update] : MyLocal [f] : String | B.java:158:7:158:13 | parameter this [Reverse] : MyLocal [f] : String | provenance | | | B.java:159:18:159:19 | s1 : String | B.java:159:9:159:12 | this [post update] : MyLocal [f] : String | provenance | | | B.java:159:18:159:19 | this : MyLocal [String s1] : String | B.java:159:18:159:19 | s1 : String | provenance | | | B.java:160:14:160:15 | this : MyLocal [String s2] : String | B.java:160:14:160:15 | s2 | provenance | | @@ -195,7 +203,7 @@ edges | B.java:164:14:164:15 | this : MyLocal [String s2] : String | B.java:164:14:164:15 | s2 | provenance | | | B.java:166:16:166:23 | s : String | B.java:167:15:167:15 | s : String | provenance | | | B.java:167:9:167:9 | l [post update] : ArrayList [] : String | B.java:167:9:167:9 | this : MyLocal [List l, ] : String | provenance | | -| B.java:167:9:167:9 | this : MyLocal [List l, ] : String | B.java:166:12:166:14 | parameter this [Return] : MyLocal [List l, ] : String | provenance | | +| B.java:167:9:167:9 | this : MyLocal [List l, ] : String | B.java:166:12:166:14 | parameter this [Reverse] : MyLocal [List l, ] : String | provenance | | | B.java:167:15:167:15 | s : String | B.java:167:9:167:9 | l [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:169:14:169:16 | parameter this : MyLocal [List l, ] : String | B.java:170:16:170:16 | this : MyLocal [List l, ] : String | provenance | | | B.java:170:16:170:16 | l : ArrayList [] : String | B.java:170:16:170:23 | get(...) : String | provenance | MaD:3 | @@ -227,18 +235,18 @@ edges | B.java:178:10:178:11 | m2 : MyLocal [List l, ] : String | B.java:178:10:178:17 | get(...) | provenance | MaD:3 | | B.java:203:16:203:42 | source(...) : String | B.java:212:5:212:6 | String s : String | provenance | | | B.java:205:19:208:5 | parameter this : new Runnable(...) { ... } [String s] : String | B.java:206:12:206:12 | this : new Runnable(...) { ... } [String s] : String | provenance | | -| B.java:205:19:208:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | B.java:210:7:210:8 | r1 [post update] : new Runnable(...) { ... } [List out, ] : String | provenance | | +| B.java:205:19:208:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | B.java:210:7:210:8 | r1 [post update] : new Runnable(...) { ... } [List out, ] : String | provenance | | | B.java:206:12:206:12 | this : new Runnable(...) { ... } [String s] : String | B.java:206:12:206:12 | s | provenance | | | B.java:207:7:207:9 | out [post update] : ArrayList [] : String | B.java:207:7:207:9 | this : new Runnable(...) { ... } [List out, ] : String | provenance | | -| B.java:207:7:207:9 | this : new Runnable(...) { ... } [List out, ] : String | B.java:205:19:208:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | provenance | | +| B.java:207:7:207:9 | this : new Runnable(...) { ... } [List out, ] : String | B.java:205:19:208:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | provenance | | | B.java:207:15:207:42 | source(...) : String | B.java:207:7:207:9 | out [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:209:19:211:5 | parameter this : new Runnable(...) { ... } [String s] : String | B.java:210:7:210:8 | this : new Runnable(...) { ... } [String s] : String | provenance | | -| B.java:209:19:211:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | B.java:212:5:212:6 | r2 [post update] : new Runnable(...) { ... } [List out, ] : String | provenance | | +| B.java:209:19:211:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | B.java:212:5:212:6 | r2 [post update] : new Runnable(...) { ... } [List out, ] : String | provenance | | | B.java:210:7:210:8 | List out : ArrayList [] : String | B.java:210:7:210:8 | this : new Runnable(...) { ... } [List out, ] : String | provenance | | | B.java:210:7:210:8 | String s : String | B.java:210:7:210:8 | r1 : new Runnable(...) { ... } [String s] : String | provenance | | | B.java:210:7:210:8 | r1 : new Runnable(...) { ... } [String s] : String | B.java:205:19:208:5 | parameter this : new Runnable(...) { ... } [String s] : String | provenance | | | B.java:210:7:210:8 | r1 [post update] : new Runnable(...) { ... } [List out, ] : String | B.java:210:7:210:8 | List out : ArrayList [] : String | provenance | | -| B.java:210:7:210:8 | this : new Runnable(...) { ... } [List out, ] : String | B.java:209:19:211:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | provenance | | +| B.java:210:7:210:8 | this : new Runnable(...) { ... } [List out, ] : String | B.java:209:19:211:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | provenance | | | B.java:210:7:210:8 | this : new Runnable(...) { ... } [String s] : String | B.java:210:7:210:8 | String s : String | provenance | | | B.java:212:5:212:6 | List out : ArrayList [] : String | B.java:213:10:213:12 | out : ArrayList [] : String | provenance | | | B.java:212:5:212:6 | String s : String | B.java:212:5:212:6 | r2 : new Runnable(...) { ... } [String s] : String | provenance | | @@ -248,12 +256,12 @@ edges | B.java:231:16:231:28 | source(...) : String | B.java:247:5:247:18 | String s : String | provenance | | | B.java:235:7:235:14 | parameter this : MyLocal2 [String s] : String | B.java:238:15:238:15 | this : MyLocal2 [String s] : String | provenance | | | B.java:238:9:238:9 | l [post update] : ArrayList [] : String | B.java:238:9:238:9 | this : MyLocal2 [List l, ] : String | provenance | | -| B.java:238:9:238:9 | this : MyLocal2 [List l, ] : String | B.java:235:7:235:14 | parameter this [Return] : MyLocal2 [List l, ] : String | provenance | | +| B.java:238:9:238:9 | this : MyLocal2 [List l, ] : String | B.java:235:7:235:14 | parameter this [Reverse] : MyLocal2 [List l, ] : String | provenance | | | B.java:238:15:238:15 | s : String | B.java:238:9:238:9 | l [post update] : ArrayList [] : String | provenance | MaD:2 | | B.java:238:15:238:15 | this : MyLocal2 [String s] : String | B.java:238:15:238:15 | s : String | provenance | | | B.java:240:12:240:14 | parameter this : MyLocal2 [List l, ] : String | B.java:241:16:241:16 | this : MyLocal2 [List l, ] : String | provenance | | | B.java:241:9:241:10 | l2 [post update] : ArrayList [] : String | B.java:241:9:241:10 | this : MyLocal2 [List l2, ] : String | provenance | | -| B.java:241:9:241:10 | this : MyLocal2 [List l2, ] : String | B.java:240:12:240:14 | parameter this [Return] : MyLocal2 [List l2, ] : String | provenance | | +| B.java:241:9:241:10 | this : MyLocal2 [List l2, ] : String | B.java:240:12:240:14 | parameter this [Reverse] : MyLocal2 [List l2, ] : String | provenance | | | B.java:241:16:241:16 | l : ArrayList [] : String | B.java:241:16:241:23 | get(...) : String | provenance | MaD:3 | | B.java:241:16:241:16 | this : MyLocal2 [List l, ] : String | B.java:241:16:241:16 | l : ArrayList [] : String | provenance | | | B.java:241:16:241:23 | get(...) : String | B.java:241:9:241:10 | l2 [post update] : ArrayList [] : String | provenance | MaD:2 | @@ -273,9 +281,8 @@ edges | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | B.java:256:18:256:18 | this : MyLocal3 [String s] : String | provenance | | | B.java:255:11:255:18 | this <.method> : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | provenance | | | B.java:255:11:255:18 | this <.method> : MyLocal3 [String s] : String | B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | provenance | | -| B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | provenance | | -| B.java:256:7:256:19 | this <.field> [Reverse] : MyLocal3 [f] : String | B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | provenance | | -| B.java:256:7:256:19 | this <.field> [post update] : MyLocal3 [f] : String | B.java:256:7:256:19 | this <.field> [Reverse] : MyLocal3 [f] : String | provenance | | +| B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | provenance | | +| B.java:256:7:256:19 | this <.field> [post update] : MyLocal3 [f] : String | B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | provenance | | | B.java:256:18:256:18 | s : String | B.java:256:7:256:19 | this <.field> [post update] : MyLocal3 [f] : String | provenance | | | B.java:256:18:256:18 | this : MyLocal3 [String s] : String | B.java:256:18:256:18 | s : String | provenance | | | B.java:257:12:257:14 | parameter this : MyLocal3 [f] : String | B.java:258:14:258:17 | this : MyLocal3 [f] : String | provenance | | @@ -289,10 +296,9 @@ edges | B.java:269:7:269:14 | parameter this : MyLocal4 [String s] : String | B.java:270:9:270:17 | this : MyLocal4 [String s] : String | provenance | | | B.java:270:9:270:17 | this : MyLocal4 [String s] : String | B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | provenance | | | B.java:270:9:270:17 | this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | provenance | | -| B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | B.java:269:7:269:14 | parameter this [Return] : MyLocal4 [f] : String | provenance | | +| B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | B.java:269:7:269:14 | parameter this [Reverse] : MyLocal4 [f] : String | provenance | | | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | B.java:273:13:273:13 | this : MyLocal4 [String s] : String | provenance | | -| B.java:273:9:273:9 | this <.field> [Reverse] : MyLocal4 [f] : String | B.java:272:7:272:14 | parameter this [Return] : MyLocal4 [f] : String | provenance | | -| B.java:273:9:273:9 | this <.field> [post update] : MyLocal4 [f] : String | B.java:273:9:273:9 | this <.field> [Reverse] : MyLocal4 [f] : String | provenance | | +| B.java:273:9:273:9 | this <.field> [post update] : MyLocal4 [f] : String | B.java:272:7:272:14 | parameter this [Reverse] : MyLocal4 [f] : String | provenance | | | B.java:273:13:273:13 | s : String | B.java:273:9:273:9 | this <.field> [post update] : MyLocal4 [f] : String | provenance | | | B.java:273:13:273:13 | this : MyLocal4 [String s] : String | B.java:273:13:273:13 | s : String | provenance | | | B.java:275:14:275:16 | parameter this : MyLocal4 [f] : String | B.java:276:16:276:19 | this : MyLocal4 [f] : String | provenance | | @@ -317,14 +323,14 @@ nodes | B.java:13:16:13:16 | e : String | semmle.label | e : String | | B.java:13:16:13:29 | ...->... [post update] : new Consumer(...) { ... } [List l2, ] : String | semmle.label | ...->... [post update] : new Consumer(...) { ... } [List l2, ] : String | | B.java:13:16:13:29 | List l2 : ArrayList [] : String | semmle.label | List l2 : ArrayList [] : String | -| B.java:13:16:13:29 | parameter this [Return] : new Consumer(...) { ... } [List l2, ] : String | semmle.label | parameter this [Return] : new Consumer(...) { ... } [List l2, ] : String | +| B.java:13:16:13:29 | parameter this [Reverse] : new Consumer(...) { ... } [List l2, ] : String | semmle.label | parameter this [Reverse] : new Consumer(...) { ... } [List l2, ] : String | | B.java:13:21:13:22 | l2 [post update] : ArrayList [] : String | semmle.label | l2 [post update] : ArrayList [] : String | | B.java:13:21:13:22 | this : new Consumer(...) { ... } [List l2, ] : String | semmle.label | this : new Consumer(...) { ... } [List l2, ] : String | | B.java:13:28:13:28 | e : String | semmle.label | e : String | | B.java:14:10:14:11 | l2 : ArrayList [] : String | semmle.label | l2 : ArrayList [] : String | | B.java:14:10:14:18 | get(...) | semmle.label | get(...) | | B.java:22:26:22:26 | x : String | semmle.label | x : String | -| B.java:22:26:22:71 | parameter this [Return] : new Consumer(...) { ... } [B other, bf1] : String | semmle.label | parameter this [Return] : new Consumer(...) { ... } [B other, bf1] : String | +| B.java:22:26:22:71 | parameter this [Reverse] : new Consumer(...) { ... } [B other, bf1] : String | semmle.label | parameter this [Reverse] : new Consumer(...) { ... } [B other, bf1] : String | | B.java:22:56:22:60 | other [post update] : B [bf1] : String | semmle.label | other [post update] : B [bf1] : String | | B.java:22:56:22:60 | this : new Consumer(...) { ... } [B other, bf1] : String | semmle.label | this : new Consumer(...) { ... } [B other, bf1] : String | | B.java:22:68:22:68 | x : String | semmle.label | x : String | @@ -335,8 +341,8 @@ nodes | B.java:34:10:34:18 | other.bf1 | semmle.label | other.bf1 | | B.java:38:23:38:45 | inp : HashMap [] : String | semmle.label | inp : HashMap [] : String | | B.java:38:23:38:45 | inp : HashMap [] : String | semmle.label | inp : HashMap [] : String | -| B.java:38:48:38:70 | out [Return] : HashMap [] : String | semmle.label | out [Return] : HashMap [] : String | -| B.java:38:48:38:70 | out [Return] : HashMap [] : String | semmle.label | out [Return] : HashMap [] : String | +| B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | semmle.label | out [Reverse] : HashMap [] : String | +| B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | semmle.label | out [Reverse] : HashMap [] : String | | B.java:39:5:39:7 | inp : HashMap [] : String | semmle.label | inp : HashMap [] : String | | B.java:39:5:39:7 | inp : HashMap [] : String | semmle.label | inp : HashMap [] : String | | B.java:39:17:39:56 | ...->... [Reverse] : new BiConsumer(...) { ... } [out, ] : String | semmle.label | ...->... [Reverse] : new BiConsumer(...) { ... } [out, ] : String | @@ -347,8 +353,8 @@ nodes | B.java:39:17:39:56 | out : HashMap [] : String | semmle.label | out : HashMap [] : String | | B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | semmle.label | out [Reverse] : HashMap [] : String | | B.java:39:17:39:56 | out [Reverse] : HashMap [] : String | semmle.label | out [Reverse] : HashMap [] : String | -| B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | semmle.label | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | -| B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | semmle.label | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | +| B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | semmle.label | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | +| B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | semmle.label | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | | B.java:39:18:39:20 | key : String | semmle.label | key : String | | B.java:39:23:39:27 | value : String | semmle.label | value : String | | B.java:39:35:39:37 | out [post update] : HashMap [] : String | semmle.label | out [post update] : HashMap [] : String | @@ -381,22 +387,24 @@ nodes | B.java:71:19:71:23 | other [post update] : B [elem] : String | semmle.label | other [post update] : B [elem] : String | | B.java:74:10:74:14 | other : B [elem] : String | semmle.label | other : B [elem] : String | | B.java:74:10:74:19 | other.elem | semmle.label | other.elem | -| B.java:77:22:77:28 | param [Return] : B [elem] : String | semmle.label | param [Return] : B [elem] : String | +| B.java:77:22:77:28 | param [Reverse] : B [elem] : String | semmle.label | param [Reverse] : B [elem] : String | | B.java:78:18:81:5 | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | semmle.label | ...->... [Reverse] : new Runnable(...) { ... } [param, elem] : String | | B.java:78:18:81:5 | param [Reverse] : B [elem] : String | semmle.label | param [Reverse] : B [elem] : String | -| B.java:78:18:81:5 | parameter this [Return] : new Runnable(...) { ... } [param, elem] : String | semmle.label | parameter this [Return] : new Runnable(...) { ... } [param, elem] : String | +| B.java:78:18:81:5 | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | semmle.label | parameter this [Reverse] : new Runnable(...) { ... } [param, elem] : String | | B.java:80:7:80:11 | param [post update] : B [elem] : String | semmle.label | param [post update] : B [elem] : String | | B.java:80:7:80:11 | this : new Runnable(...) { ... } [param, elem] : String | semmle.label | this : new Runnable(...) { ... } [param, elem] : String | | B.java:80:20:80:39 | source(...) : String | semmle.label | source(...) : String | | B.java:82:5:82:5 | param : B [elem] : String | semmle.label | param : B [elem] : String | | B.java:82:5:82:5 | param [Reverse] : B [elem] : String | semmle.label | param [Reverse] : B [elem] : String | +| B.java:82:5:82:5 | param [Reverse] : B [elem] : String | semmle.label | param [Reverse] : B [elem] : String | +| B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | semmle.label | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | | B.java:82:5:82:5 | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | semmle.label | r [Reverse] : new Runnable(...) { ... } [param, elem] : String | | B.java:82:5:82:5 | r [post update] : new Runnable(...) { ... } [param, elem] : String | semmle.label | r [post update] : new Runnable(...) { ... } [param, elem] : String | | B.java:88:22:88:44 | parameter this : new Runnable(...) { ... } [B b, elem] : String | semmle.label | parameter this : new Runnable(...) { ... } [B b, elem] : String | | B.java:88:35:88:35 | b : B [elem] : String | semmle.label | b : B [elem] : String | | B.java:88:35:88:35 | this : new Runnable(...) { ... } [B b, elem] : String | semmle.label | this : new Runnable(...) { ... } [B b, elem] : String | | B.java:88:35:88:40 | b.elem | semmle.label | b.elem | -| B.java:89:20:89:52 | parameter this [Return] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | parameter this [Return] : new Runnable(...) { ... } [B b, elem] : String | +| B.java:89:20:89:52 | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | parameter this [Reverse] : new Runnable(...) { ... } [B b, elem] : String | | B.java:89:28:89:28 | b [post update] : B [elem] : String | semmle.label | b [post update] : B [elem] : String | | B.java:89:28:89:28 | this : new Runnable(...) { ... } [B b, elem] : String | semmle.label | this : new Runnable(...) { ... } [B b, elem] : String | | B.java:89:37:89:49 | source(...) : String | semmle.label | source(...) : String | @@ -405,8 +413,10 @@ nodes | B.java:92:11:92:15 | B b : B [elem] : String | semmle.label | B b : B [elem] : String | | B.java:92:11:92:15 | sink2 : new Runnable(...) { ... } [B b, elem] : String | semmle.label | sink2 : new Runnable(...) { ... } [B b, elem] : String | | B.java:95:14:95:23 | r : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r : new Runnable(...) { ... } [B b, elem] : String | -| B.java:95:14:95:23 | r [Return] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r [Return] : new Runnable(...) { ... } [B b, elem] : String | +| B.java:95:14:95:23 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | | B.java:96:5:96:5 | r : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r : new Runnable(...) { ... } [B b, elem] : String | +| B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | +| B.java:96:5:96:5 | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r [Reverse] : new Runnable(...) { ... } [B b, elem] : String | | B.java:96:5:96:5 | r [post update] : new Runnable(...) { ... } [B b, elem] : String | semmle.label | r [post update] : new Runnable(...) { ... } [B b, elem] : String | | B.java:102:5:102:6 | l1 [post update] : ArrayList [] : String | semmle.label | l1 [post update] : ArrayList [] : String | | B.java:102:12:102:29 | source(...) : String | semmle.label | source(...) : String | @@ -422,8 +432,8 @@ nodes | B.java:107:16:111:6 | List out2 : ArrayList [] : String | semmle.label | List out2 : ArrayList [] : String | | B.java:107:16:111:6 | String s : String | semmle.label | String s : String | | B.java:107:16:111:6 | parameter this : new Consumer>(...) { ... } [String s] : String | semmle.label | parameter this : new Consumer>(...) { ... } [String s] : String | -| B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out1, ] : String | semmle.label | parameter this [Return] : new Consumer>(...) { ... } [List out1, ] : String | -| B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out2, ] : String | semmle.label | parameter this [Return] : new Consumer>(...) { ... } [List out2, ] : String | +| B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out1, ] : String | semmle.label | parameter this [Reverse] : new Consumer>(...) { ... } [List out1, ] : String | +| B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out2, ] : String | semmle.label | parameter this [Reverse] : new Consumer>(...) { ... } [List out2, ] : String | | B.java:107:21:107:21 | l : ArrayList [] : String | semmle.label | l : ArrayList [] : String | | B.java:107:31:107:31 | x : String | semmle.label | x : String | | B.java:107:31:111:5 | ...->... : new Consumer(...) { ... } [String s] : String | semmle.label | ...->... : new Consumer(...) { ... } [String s] : String | @@ -433,8 +443,8 @@ nodes | B.java:107:31:111:5 | List out2 : ArrayList [] : String | semmle.label | List out2 : ArrayList [] : String | | B.java:107:31:111:5 | String s : String | semmle.label | String s : String | | B.java:107:31:111:5 | parameter this : new Consumer(...) { ... } [String s] : String | semmle.label | parameter this : new Consumer(...) { ... } [String s] : String | -| B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out1, ] : String | semmle.label | parameter this [Return] : new Consumer(...) { ... } [List out1, ] : String | -| B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out2, ] : String | semmle.label | parameter this [Return] : new Consumer(...) { ... } [List out2, ] : String | +| B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out1, ] : String | semmle.label | parameter this [Reverse] : new Consumer(...) { ... } [List out1, ] : String | +| B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out2, ] : String | semmle.label | parameter this [Reverse] : new Consumer(...) { ... } [List out2, ] : String | | B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out1, ] : String | semmle.label | this : new Consumer>(...) { ... } [List out1, ] : String | | B.java:107:31:111:5 | this : new Consumer>(...) { ... } [List out2, ] : String | semmle.label | this : new Consumer>(...) { ... } [List out2, ] : String | | B.java:107:31:111:5 | this : new Consumer>(...) { ... } [String s] : String | semmle.label | this : new Consumer>(...) { ... } [String s] : String | @@ -451,12 +461,12 @@ nodes | B.java:112:10:112:20 | get(...) | semmle.label | get(...) | | B.java:113:10:113:13 | out2 : ArrayList [] : String | semmle.label | out2 : ArrayList [] : String | | B.java:113:10:113:20 | get(...) | semmle.label | get(...) | -| B.java:126:19:126:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l1, ] : String | semmle.label | parameter this [Return] : new TwoRuns(...) { ... } [List l1, ] : String | +| B.java:126:19:126:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l1, ] : String | semmle.label | parameter this [Reverse] : new TwoRuns(...) { ... } [List l1, ] : String | | B.java:127:9:127:10 | l1 [post update] : ArrayList [] : String | semmle.label | l1 [post update] : ArrayList [] : String | | B.java:127:9:127:10 | this : new TwoRuns(...) { ... } [List l1, ] : String | semmle.label | this : new TwoRuns(...) { ... } [List l1, ] : String | | B.java:127:16:127:29 | source(...) : String | semmle.label | source(...) : String | | B.java:130:19:130:22 | parameter this : new TwoRuns(...) { ... } [List l1, ] : String | semmle.label | parameter this : new TwoRuns(...) { ... } [List l1, ] : String | -| B.java:130:19:130:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l2, ] : String | semmle.label | parameter this [Return] : new TwoRuns(...) { ... } [List l2, ] : String | +| B.java:130:19:130:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l2, ] : String | semmle.label | parameter this [Reverse] : new TwoRuns(...) { ... } [List l2, ] : String | | B.java:131:9:131:10 | l2 [post update] : ArrayList [] : String | semmle.label | l2 [post update] : ArrayList [] : String | | B.java:131:9:131:10 | this : new TwoRuns(...) { ... } [List l2, ] : String | semmle.label | this : new TwoRuns(...) { ... } [List l2, ] : String | | B.java:131:16:131:17 | l1 : ArrayList [] : String | semmle.label | l1 : ArrayList [] : String | @@ -472,8 +482,7 @@ nodes | B.java:138:10:138:18 | get(...) | semmle.label | get(...) | | B.java:142:16:142:31 | source(...) : String | semmle.label | source(...) : String | | B.java:145:7:145:13 | parameter this : MyLocal [String s] : String | semmle.label | parameter this : MyLocal [String s] : String | -| B.java:145:7:145:13 | parameter this [Return] : MyLocal [f] : String | semmle.label | parameter this [Return] : MyLocal [f] : String | -| B.java:145:19:145:22 | this [Reverse] : MyLocal [f] : String | semmle.label | this [Reverse] : MyLocal [f] : String | +| B.java:145:7:145:13 | parameter this [Reverse] : MyLocal [f] : String | semmle.label | parameter this [Reverse] : MyLocal [f] : String | | B.java:145:19:145:22 | this [post update] : MyLocal [f] : String | semmle.label | this [post update] : MyLocal [f] : String | | B.java:145:28:145:28 | s : String | semmle.label | s : String | | B.java:145:28:145:28 | this : MyLocal [String s] : String | semmle.label | this : MyLocal [String s] : String | @@ -489,8 +498,7 @@ nodes | B.java:154:17:154:28 | source(...) : String | semmle.label | source(...) : String | | B.java:158:7:158:13 | parameter this : MyLocal [String s1] : String | semmle.label | parameter this : MyLocal [String s1] : String | | B.java:158:7:158:13 | parameter this : MyLocal [String s2] : String | semmle.label | parameter this : MyLocal [String s2] : String | -| B.java:158:7:158:13 | parameter this [Return] : MyLocal [f] : String | semmle.label | parameter this [Return] : MyLocal [f] : String | -| B.java:159:9:159:12 | this [Reverse] : MyLocal [f] : String | semmle.label | this [Reverse] : MyLocal [f] : String | +| B.java:158:7:158:13 | parameter this [Reverse] : MyLocal [f] : String | semmle.label | parameter this [Reverse] : MyLocal [f] : String | | B.java:159:9:159:12 | this [post update] : MyLocal [f] : String | semmle.label | this [post update] : MyLocal [f] : String | | B.java:159:18:159:19 | s1 : String | semmle.label | s1 : String | | B.java:159:18:159:19 | this : MyLocal [String s1] : String | semmle.label | this : MyLocal [String s1] : String | @@ -502,7 +510,7 @@ nodes | B.java:163:14:163:14 | this <.field> : MyLocal [f] : String | semmle.label | this <.field> : MyLocal [f] : String | | B.java:164:14:164:15 | s2 | semmle.label | s2 | | B.java:164:14:164:15 | this : MyLocal [String s2] : String | semmle.label | this : MyLocal [String s2] : String | -| B.java:166:12:166:14 | parameter this [Return] : MyLocal [List l, ] : String | semmle.label | parameter this [Return] : MyLocal [List l, ] : String | +| B.java:166:12:166:14 | parameter this [Reverse] : MyLocal [List l, ] : String | semmle.label | parameter this [Reverse] : MyLocal [List l, ] : String | | B.java:166:16:166:23 | s : String | semmle.label | s : String | | B.java:167:9:167:9 | l [post update] : ArrayList [] : String | semmle.label | l [post update] : ArrayList [] : String | | B.java:167:9:167:9 | this : MyLocal [List l, ] : String | semmle.label | this : MyLocal [List l, ] : String | @@ -533,14 +541,14 @@ nodes | B.java:178:10:178:17 | get(...) | semmle.label | get(...) | | B.java:203:16:203:42 | source(...) : String | semmle.label | source(...) : String | | B.java:205:19:208:5 | parameter this : new Runnable(...) { ... } [String s] : String | semmle.label | parameter this : new Runnable(...) { ... } [String s] : String | -| B.java:205:19:208:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | semmle.label | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | +| B.java:205:19:208:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | semmle.label | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | | B.java:206:12:206:12 | s | semmle.label | s | | B.java:206:12:206:12 | this : new Runnable(...) { ... } [String s] : String | semmle.label | this : new Runnable(...) { ... } [String s] : String | | B.java:207:7:207:9 | out [post update] : ArrayList [] : String | semmle.label | out [post update] : ArrayList [] : String | | B.java:207:7:207:9 | this : new Runnable(...) { ... } [List out, ] : String | semmle.label | this : new Runnable(...) { ... } [List out, ] : String | | B.java:207:15:207:42 | source(...) : String | semmle.label | source(...) : String | | B.java:209:19:211:5 | parameter this : new Runnable(...) { ... } [String s] : String | semmle.label | parameter this : new Runnable(...) { ... } [String s] : String | -| B.java:209:19:211:5 | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | semmle.label | parameter this [Return] : new Runnable(...) { ... } [List out, ] : String | +| B.java:209:19:211:5 | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | semmle.label | parameter this [Reverse] : new Runnable(...) { ... } [List out, ] : String | | B.java:210:7:210:8 | List out : ArrayList [] : String | semmle.label | List out : ArrayList [] : String | | B.java:210:7:210:8 | String s : String | semmle.label | String s : String | | B.java:210:7:210:8 | r1 : new Runnable(...) { ... } [String s] : String | semmle.label | r1 : new Runnable(...) { ... } [String s] : String | @@ -555,13 +563,13 @@ nodes | B.java:213:10:213:19 | get(...) | semmle.label | get(...) | | B.java:231:16:231:28 | source(...) : String | semmle.label | source(...) : String | | B.java:235:7:235:14 | parameter this : MyLocal2 [String s] : String | semmle.label | parameter this : MyLocal2 [String s] : String | -| B.java:235:7:235:14 | parameter this [Return] : MyLocal2 [List l, ] : String | semmle.label | parameter this [Return] : MyLocal2 [List l, ] : String | +| B.java:235:7:235:14 | parameter this [Reverse] : MyLocal2 [List l, ] : String | semmle.label | parameter this [Reverse] : MyLocal2 [List l, ] : String | | B.java:238:9:238:9 | l [post update] : ArrayList [] : String | semmle.label | l [post update] : ArrayList [] : String | | B.java:238:9:238:9 | this : MyLocal2 [List l, ] : String | semmle.label | this : MyLocal2 [List l, ] : String | | B.java:238:15:238:15 | s : String | semmle.label | s : String | | B.java:238:15:238:15 | this : MyLocal2 [String s] : String | semmle.label | this : MyLocal2 [String s] : String | | B.java:240:12:240:14 | parameter this : MyLocal2 [List l, ] : String | semmle.label | parameter this : MyLocal2 [List l, ] : String | -| B.java:240:12:240:14 | parameter this [Return] : MyLocal2 [List l2, ] : String | semmle.label | parameter this [Return] : MyLocal2 [List l2, ] : String | +| B.java:240:12:240:14 | parameter this [Reverse] : MyLocal2 [List l2, ] : String | semmle.label | parameter this [Reverse] : MyLocal2 [List l2, ] : String | | B.java:241:9:241:10 | l2 [post update] : ArrayList [] : String | semmle.label | l2 [post update] : ArrayList [] : String | | B.java:241:9:241:10 | this : MyLocal2 [List l2, ] : String | semmle.label | this : MyLocal2 [List l2, ] : String | | B.java:241:16:241:16 | l : ArrayList [] : String | semmle.label | l : ArrayList [] : String | @@ -580,11 +588,10 @@ nodes | B.java:254:16:254:29 | source(...) : String | semmle.label | source(...) : String | | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | semmle.label | parameter this : MyLocal3 [String s] : String | | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | semmle.label | parameter this : MyLocal3 [String s] : String | -| B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | semmle.label | parameter this [Return] : MyLocal3 [f] : String | -| B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | semmle.label | parameter this [Return] : MyLocal3 [f] : String | +| B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | semmle.label | parameter this [Reverse] : MyLocal3 [f] : String | +| B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | semmle.label | parameter this [Reverse] : MyLocal3 [f] : String | | B.java:255:11:255:18 | this <.method> : MyLocal3 [String s] : String | semmle.label | this <.method> : MyLocal3 [String s] : String | | B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | semmle.label | this <.method> [post update] : MyLocal3 [f] : String | -| B.java:256:7:256:19 | this <.field> [Reverse] : MyLocal3 [f] : String | semmle.label | this <.field> [Reverse] : MyLocal3 [f] : String | | B.java:256:7:256:19 | this <.field> [post update] : MyLocal3 [f] : String | semmle.label | this <.field> [post update] : MyLocal3 [f] : String | | B.java:256:18:256:18 | s : String | semmle.label | s : String | | B.java:256:18:256:18 | this : MyLocal3 [String s] : String | semmle.label | this : MyLocal3 [String s] : String | @@ -596,12 +603,11 @@ nodes | B.java:261:5:261:18 | new MyLocal3(...) [pre constructor] : MyLocal3 [String s] : String | semmle.label | new MyLocal3(...) [pre constructor] : MyLocal3 [String s] : String | | B.java:266:16:266:29 | source(...) : String | semmle.label | source(...) : String | | B.java:269:7:269:14 | parameter this : MyLocal4 [String s] : String | semmle.label | parameter this : MyLocal4 [String s] : String | -| B.java:269:7:269:14 | parameter this [Return] : MyLocal4 [f] : String | semmle.label | parameter this [Return] : MyLocal4 [f] : String | +| B.java:269:7:269:14 | parameter this [Reverse] : MyLocal4 [f] : String | semmle.label | parameter this [Reverse] : MyLocal4 [f] : String | | B.java:270:9:270:17 | this : MyLocal4 [String s] : String | semmle.label | this : MyLocal4 [String s] : String | | B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | semmle.label | this [post update] : MyLocal4 [f] : String | | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | semmle.label | parameter this : MyLocal4 [String s] : String | -| B.java:272:7:272:14 | parameter this [Return] : MyLocal4 [f] : String | semmle.label | parameter this [Return] : MyLocal4 [f] : String | -| B.java:273:9:273:9 | this <.field> [Reverse] : MyLocal4 [f] : String | semmle.label | this <.field> [Reverse] : MyLocal4 [f] : String | +| B.java:272:7:272:14 | parameter this [Reverse] : MyLocal4 [f] : String | semmle.label | parameter this [Reverse] : MyLocal4 [f] : String | | B.java:273:9:273:9 | this <.field> [post update] : MyLocal4 [f] : String | semmle.label | this <.field> [post update] : MyLocal4 [f] : String | | B.java:273:13:273:13 | s : String | semmle.label | s : String | | B.java:273:13:273:13 | this : MyLocal4 [String s] : String | semmle.label | this : MyLocal4 [String s] : String | @@ -619,29 +625,29 @@ nodes | B.java:280:10:280:24 | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | semmle.label | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | | B.java:280:10:280:30 | get(...) | semmle.label | get(...) | subpaths -| B.java:13:5:13:6 | l1 : ArrayList [] : String | B.java:13:16:13:16 | e : String | B.java:13:16:13:29 | parameter this [Return] : new Consumer(...) { ... } [List l2, ] : String | B.java:13:16:13:29 | ...->... [post update] : new Consumer(...) { ... } [List l2, ] : String | -| B.java:30:14:30:24 | source(...) : String | B.java:22:26:22:26 | x : String | B.java:22:26:22:71 | parameter this [Return] : new Consumer(...) { ... } [B other, bf1] : String | B.java:30:5:30:5 | f [post update] : new Consumer(...) { ... } [B other, bf1] : String | -| B.java:39:5:39:7 | inp : HashMap [] : String | B.java:39:18:39:20 | key : String | B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | -| B.java:39:5:39:7 | inp : HashMap [] : String | B.java:39:23:39:27 | value : String | B.java:39:17:39:56 | parameter this [Return] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | -| B.java:46:13:46:14 | m1 : HashMap [] : String | B.java:38:23:38:45 | inp : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | B.java:46:17:46:18 | m2 [post update] : HashMap [] : String | -| B.java:46:13:46:14 | m1 : HashMap [] : String | B.java:38:23:38:45 | inp : HashMap [] : String | B.java:38:48:38:70 | out [Return] : HashMap [] : String | B.java:46:17:46:18 | m2 [post update] : HashMap [] : String | -| B.java:107:5:107:6 | l2 : ArrayList [, ] : String | B.java:107:16:107:16 | l : ArrayList [] : String | B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out1, ] : String | B.java:107:16:111:6 | ...->... [post update] : new Consumer>(...) { ... } [List out1, ] : String | -| B.java:107:16:111:6 | ...->... : new Consumer>(...) { ... } [String s] : String | B.java:107:16:111:6 | parameter this : new Consumer>(...) { ... } [String s] : String | B.java:107:16:111:6 | parameter this [Return] : new Consumer>(...) { ... } [List out2, ] : String | B.java:107:16:111:6 | ...->... [post update] : new Consumer>(...) { ... } [List out2, ] : String | -| B.java:107:21:107:21 | l : ArrayList [] : String | B.java:107:31:107:31 | x : String | B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out1, ] : String | B.java:107:31:111:5 | ...->... [post update] : new Consumer(...) { ... } [List out1, ] : String | -| B.java:107:31:111:5 | ...->... : new Consumer(...) { ... } [String s] : String | B.java:107:31:111:5 | parameter this : new Consumer(...) { ... } [String s] : String | B.java:107:31:111:5 | parameter this [Return] : new Consumer(...) { ... } [List out2, ] : String | B.java:107:31:111:5 | ...->... [post update] : new Consumer(...) { ... } [List out2, ] : String | -| B.java:137:5:137:5 | r : new TwoRuns(...) { ... } [List l1, ] : String | B.java:130:19:130:22 | parameter this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:130:19:130:22 | parameter this [Return] : new TwoRuns(...) { ... } [List l2, ] : String | B.java:137:5:137:5 | r [post update] : new TwoRuns(...) { ... } [List l2, ] : String | -| B.java:148:17:148:29 | new MyLocal(...) [pre constructor] : MyLocal [String s] : String | B.java:145:7:145:13 | parameter this : MyLocal [String s] : String | B.java:145:7:145:13 | parameter this [Return] : MyLocal [f] : String | B.java:148:17:148:29 | new MyLocal(...) : MyLocal [f] : String | +| B.java:13:5:13:6 | l1 : ArrayList [] : String | B.java:13:16:13:16 | e : String | B.java:13:16:13:29 | parameter this [Reverse] : new Consumer(...) { ... } [List l2, ] : String | B.java:13:16:13:29 | ...->... [post update] : new Consumer(...) { ... } [List l2, ] : String | +| B.java:30:14:30:24 | source(...) : String | B.java:22:26:22:26 | x : String | B.java:22:26:22:71 | parameter this [Reverse] : new Consumer(...) { ... } [B other, bf1] : String | B.java:30:5:30:5 | f [post update] : new Consumer(...) { ... } [B other, bf1] : String | +| B.java:39:5:39:7 | inp : HashMap [] : String | B.java:39:18:39:20 | key : String | B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | +| B.java:39:5:39:7 | inp : HashMap [] : String | B.java:39:23:39:27 | value : String | B.java:39:17:39:56 | parameter this [Reverse] : new BiConsumer(...) { ... } [out, ] : String | B.java:39:17:39:56 | ...->... [post update] : new BiConsumer(...) { ... } [out, ] : String | +| B.java:46:13:46:14 | m1 : HashMap [] : String | B.java:38:23:38:45 | inp : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | B.java:46:17:46:18 | m2 [post update] : HashMap [] : String | +| B.java:46:13:46:14 | m1 : HashMap [] : String | B.java:38:23:38:45 | inp : HashMap [] : String | B.java:38:48:38:70 | out [Reverse] : HashMap [] : String | B.java:46:17:46:18 | m2 [post update] : HashMap [] : String | +| B.java:107:5:107:6 | l2 : ArrayList [, ] : String | B.java:107:16:107:16 | l : ArrayList [] : String | B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out1, ] : String | B.java:107:16:111:6 | ...->... [post update] : new Consumer>(...) { ... } [List out1, ] : String | +| B.java:107:16:111:6 | ...->... : new Consumer>(...) { ... } [String s] : String | B.java:107:16:111:6 | parameter this : new Consumer>(...) { ... } [String s] : String | B.java:107:16:111:6 | parameter this [Reverse] : new Consumer>(...) { ... } [List out2, ] : String | B.java:107:16:111:6 | ...->... [post update] : new Consumer>(...) { ... } [List out2, ] : String | +| B.java:107:21:107:21 | l : ArrayList [] : String | B.java:107:31:107:31 | x : String | B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out1, ] : String | B.java:107:31:111:5 | ...->... [post update] : new Consumer(...) { ... } [List out1, ] : String | +| B.java:107:31:111:5 | ...->... : new Consumer(...) { ... } [String s] : String | B.java:107:31:111:5 | parameter this : new Consumer(...) { ... } [String s] : String | B.java:107:31:111:5 | parameter this [Reverse] : new Consumer(...) { ... } [List out2, ] : String | B.java:107:31:111:5 | ...->... [post update] : new Consumer(...) { ... } [List out2, ] : String | +| B.java:137:5:137:5 | r : new TwoRuns(...) { ... } [List l1, ] : String | B.java:130:19:130:22 | parameter this : new TwoRuns(...) { ... } [List l1, ] : String | B.java:130:19:130:22 | parameter this [Reverse] : new TwoRuns(...) { ... } [List l2, ] : String | B.java:137:5:137:5 | r [post update] : new TwoRuns(...) { ... } [List l2, ] : String | +| B.java:148:17:148:29 | new MyLocal(...) [pre constructor] : MyLocal [String s] : String | B.java:145:7:145:13 | parameter this : MyLocal [String s] : String | B.java:145:7:145:13 | parameter this [Reverse] : MyLocal [f] : String | B.java:148:17:148:29 | new MyLocal(...) : MyLocal [f] : String | | B.java:149:10:149:10 | m : MyLocal [f] : String | B.java:146:14:146:17 | parameter this : MyLocal [f] : String | B.java:146:30:146:35 | this.f : String | B.java:149:10:149:17 | getF(...) | -| B.java:173:18:173:30 | new MyLocal(...) [pre constructor] : MyLocal [String s1] : String | B.java:158:7:158:13 | parameter this : MyLocal [String s1] : String | B.java:158:7:158:13 | parameter this [Return] : MyLocal [f] : String | B.java:173:18:173:30 | new MyLocal(...) : MyLocal [f] : String | -| B.java:177:12:177:27 | source(...) : String | B.java:166:16:166:23 | s : String | B.java:166:12:166:14 | parameter this [Return] : MyLocal [List l, ] : String | B.java:177:5:177:6 | m1 [post update] : MyLocal [List l, ] : String | +| B.java:173:18:173:30 | new MyLocal(...) [pre constructor] : MyLocal [String s1] : String | B.java:158:7:158:13 | parameter this : MyLocal [String s1] : String | B.java:158:7:158:13 | parameter this [Reverse] : MyLocal [f] : String | B.java:173:18:173:30 | new MyLocal(...) : MyLocal [f] : String | +| B.java:177:12:177:27 | source(...) : String | B.java:166:16:166:23 | s : String | B.java:166:12:166:14 | parameter this [Reverse] : MyLocal [List l, ] : String | B.java:177:5:177:6 | m1 [post update] : MyLocal [List l, ] : String | | B.java:178:10:178:11 | m2 : MyLocal [List l, ] : String | B.java:169:14:169:16 | parameter this : MyLocal [List l, ] : String | B.java:170:16:170:23 | get(...) : String | B.java:178:10:178:17 | get(...) | -| B.java:247:5:247:18 | new MyLocal2(...) : MyLocal2 [List l, ] : String | B.java:240:12:240:14 | parameter this : MyLocal2 [List l, ] : String | B.java:240:12:240:14 | parameter this [Return] : MyLocal2 [List l2, ] : String | B.java:247:5:247:18 | new MyLocal2(...) [post update] : MyLocal2 [List l2, ] : String | -| B.java:247:5:247:18 | new MyLocal2(...) [pre constructor] : MyLocal2 [String s] : String | B.java:235:7:235:14 | parameter this : MyLocal2 [String s] : String | B.java:235:7:235:14 | parameter this [Return] : MyLocal2 [List l, ] : String | B.java:247:5:247:18 | new MyLocal2(...) : MyLocal2 [List l, ] : String | -| B.java:255:11:255:18 | this <.method> : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | -| B.java:261:5:261:18 | new MyLocal3(...) [pre constructor] : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this [Return] : MyLocal3 [f] : String | B.java:261:5:261:18 | new MyLocal3(...) : MyLocal3 [f] : String | -| B.java:270:9:270:17 | this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this [Return] : MyLocal4 [f] : String | B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | +| B.java:247:5:247:18 | new MyLocal2(...) : MyLocal2 [List l, ] : String | B.java:240:12:240:14 | parameter this : MyLocal2 [List l, ] : String | B.java:240:12:240:14 | parameter this [Reverse] : MyLocal2 [List l2, ] : String | B.java:247:5:247:18 | new MyLocal2(...) [post update] : MyLocal2 [List l2, ] : String | +| B.java:247:5:247:18 | new MyLocal2(...) [pre constructor] : MyLocal2 [String s] : String | B.java:235:7:235:14 | parameter this : MyLocal2 [String s] : String | B.java:235:7:235:14 | parameter this [Reverse] : MyLocal2 [List l, ] : String | B.java:247:5:247:18 | new MyLocal2(...) : MyLocal2 [List l, ] : String | +| B.java:255:11:255:18 | this <.method> : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | B.java:255:11:255:18 | this <.method> [post update] : MyLocal3 [f] : String | +| B.java:261:5:261:18 | new MyLocal3(...) [pre constructor] : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this : MyLocal3 [String s] : String | B.java:255:11:255:18 | parameter this [Reverse] : MyLocal3 [f] : String | B.java:261:5:261:18 | new MyLocal3(...) : MyLocal3 [f] : String | +| B.java:270:9:270:17 | this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this [Reverse] : MyLocal4 [f] : String | B.java:270:9:270:17 | this [post update] : MyLocal4 [f] : String | | B.java:279:10:279:23 | new MyLocal4(...) : MyLocal4 [f] : String | B.java:275:14:275:16 | parameter this : MyLocal4 [f] : String | B.java:276:16:276:21 | this.f : String | B.java:279:10:279:29 | get(...) | -| B.java:279:10:279:23 | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | B.java:269:7:269:14 | parameter this : MyLocal4 [String s] : String | B.java:269:7:269:14 | parameter this [Return] : MyLocal4 [f] : String | B.java:279:10:279:23 | new MyLocal4(...) : MyLocal4 [f] : String | +| B.java:279:10:279:23 | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | B.java:269:7:269:14 | parameter this : MyLocal4 [String s] : String | B.java:269:7:269:14 | parameter this [Reverse] : MyLocal4 [f] : String | B.java:279:10:279:23 | new MyLocal4(...) : MyLocal4 [f] : String | | B.java:280:10:280:24 | new MyLocal4(...) : MyLocal4 [f] : String | B.java:275:14:275:16 | parameter this : MyLocal4 [f] : String | B.java:276:16:276:21 | this.f : String | B.java:280:10:280:30 | get(...) | -| B.java:280:10:280:24 | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this [Return] : MyLocal4 [f] : String | B.java:280:10:280:24 | new MyLocal4(...) : MyLocal4 [f] : String | +| B.java:280:10:280:24 | new MyLocal4(...) [pre constructor] : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this : MyLocal4 [String s] : String | B.java:272:7:272:14 | parameter this [Reverse] : MyLocal4 [f] : String | B.java:280:10:280:24 | new MyLocal4(...) : MyLocal4 [f] : String | testFailures diff --git a/java/ql/test/library-tests/dataflow/capture/test.expected b/java/ql/test/library-tests/dataflow/capture/test.expected index 863f73acbf026..be493d849a94d 100644 --- a/java/ql/test/library-tests/dataflow/capture/test.expected +++ b/java/ql/test/library-tests/dataflow/capture/test.expected @@ -48,7 +48,6 @@ | A.java:23:11:23:13 | "C" : String | A.java:35:26:35:27 | this : new A(...) { ... } [String s] | | A.java:23:11:23:13 | "C" : String | A.java:39:12:39:12 | String s : String | | A.java:23:11:23:13 | "C" : String | A.java:39:12:39:12 | a : new A(...) { ... } [String s] | -| A.java:25:22:25:24 | "D" : String | A.java:4:5:4:7 | parameter this [Return] : Box [elem] | | A.java:25:22:25:24 | "D" : String | A.java:4:5:4:7 | parameter this [Reverse] : Box [elem] | | A.java:25:22:25:24 | "D" : String | A.java:4:5:4:7 | this [Reverse] : Box [elem] | | A.java:25:22:25:24 | "D" : String | A.java:4:5:4:7 | this [post update] [Reverse] : Box [elem] | @@ -78,7 +77,6 @@ | A.java:25:22:25:24 | "D" : String | A.java:35:26:35:27 | this : new A(...) { ... } [Box b1, ... (2)] | | A.java:25:22:25:24 | "D" : String | A.java:39:12:39:12 | Box b1 : Box [elem] | | A.java:25:22:25:24 | "D" : String | A.java:39:12:39:12 | a : new A(...) { ... } [Box b1, ... (2)] | -| A.java:27:16:27:18 | "E" : String | A.java:5:10:5:16 | parameter this [Return] : Box [elem] | | A.java:27:16:27:18 | "E" : String | A.java:5:10:5:16 | parameter this [Reverse] : Box [elem] | | A.java:27:16:27:18 | "E" : String | A.java:5:18:5:25 | e : String | | A.java:27:16:27:18 | "E" : String | A.java:5:30:5:33 | this <.field> [Reverse] : Box [elem] | diff --git a/java/ql/test/library-tests/dataflow/fluent-methods/flow.expected b/java/ql/test/library-tests/dataflow/fluent-methods/flow.expected index d094e4c073443..0df0372db3298 100644 --- a/java/ql/test/library-tests/dataflow/fluent-methods/flow.expected +++ b/java/ql/test/library-tests/dataflow/fluent-methods/flow.expected @@ -1,14 +1,13 @@ models edges -| Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Return] : Test [field] : String | provenance | | -| Test.java:20:12:20:15 | this [post update] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Return] : Test [field] : String | provenance | | +| Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Reverse] : Test [field] : String | provenance | | +| Test.java:20:12:20:15 | this [post update] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Reverse] : Test [field] : String | provenance | | | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | provenance | | | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:15 | this [post update] : Test [field] : String | provenance | | | Test.java:23:25:23:32 | x : String | Test.java:24:18:24:18 | x : String | provenance | | -| Test.java:24:5:24:8 | this [Reverse] : Test [field] : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | provenance | | -| Test.java:24:5:24:8 | this [post update] : Test [field] : String | Test.java:24:5:24:8 | this [Reverse] : Test [field] : String | provenance | | +| Test.java:24:5:24:8 | this [post update] : Test [field] : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | provenance | | | Test.java:24:18:24:18 | x : String | Test.java:24:5:24:8 | this [post update] : Test [field] : String | provenance | | -| Test.java:29:12:29:12 | t [Reverse] : Test [field] : String | Test.java:28:31:28:36 | t [Return] : Test [field] : String | provenance | | +| Test.java:29:12:29:12 | t [Reverse] : Test [field] : String | Test.java:28:31:28:36 | t [Reverse] : Test [field] : String | provenance | | | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | this <.field> : Test [field] : String | provenance | | | Test.java:33:12:33:16 | this <.field> : Test [field] : String | Test.java:33:12:33:16 | field : String | provenance | | | Test.java:44:5:44:5 | t [post update] : Test [field] : String | Test.java:45:10:45:10 | t : Test [field] : String | provenance | | @@ -55,17 +54,16 @@ edges | Test.java:69:10:69:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | provenance | | | Test.java:69:10:69:10 | t : Test [field] : String | Test.java:69:10:69:16 | get(...) | provenance | | nodes -| Test.java:5:15:5:24 | parameter this [Return] : Test [field] : String | semmle.label | parameter this [Return] : Test [field] : String | +| Test.java:5:15:5:24 | parameter this [Reverse] : Test [field] : String | semmle.label | parameter this [Reverse] : Test [field] : String | | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | semmle.label | this [Reverse] : Test [field] : String | -| Test.java:19:15:19:34 | parameter this [Return] : Test [field] : String | semmle.label | parameter this [Return] : Test [field] : String | +| Test.java:19:15:19:34 | parameter this [Reverse] : Test [field] : String | semmle.label | parameter this [Reverse] : Test [field] : String | | Test.java:20:12:20:15 | this [post update] : Test [field] : String | semmle.label | this [post update] : Test [field] : String | | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | semmle.label | fluentNoop(...) [Reverse] : Test [field] : String | -| Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | semmle.label | parameter this [Return] : Test [field] : String | +| Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | semmle.label | parameter this [Reverse] : Test [field] : String | | Test.java:23:25:23:32 | x : String | semmle.label | x : String | -| Test.java:24:5:24:8 | this [Reverse] : Test [field] : String | semmle.label | this [Reverse] : Test [field] : String | | Test.java:24:5:24:8 | this [post update] : Test [field] : String | semmle.label | this [post update] : Test [field] : String | | Test.java:24:18:24:18 | x : String | semmle.label | x : String | -| Test.java:28:31:28:36 | t [Return] : Test [field] : String | semmle.label | t [Return] : Test [field] : String | +| Test.java:28:31:28:36 | t [Reverse] : Test [field] : String | semmle.label | t [Reverse] : Test [field] : String | | Test.java:29:12:29:12 | t [Reverse] : Test [field] : String | semmle.label | t [Reverse] : Test [field] : String | | Test.java:32:17:32:19 | parameter this : Test [field] : String | semmle.label | parameter this : Test [field] : String | | Test.java:33:12:33:16 | field : String | semmle.label | field : String | @@ -103,21 +101,21 @@ nodes | Test.java:69:10:69:10 | t : Test [field] : String | semmle.label | t : Test [field] : String | | Test.java:69:10:69:16 | get(...) | semmle.label | get(...) | subpaths -| Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Return] : Test [field] : String | Test.java:20:12:20:15 | this [post update] : Test [field] : String | -| Test.java:44:5:44:18 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Return] : Test [field] : String | Test.java:44:5:44:5 | t [post update] : Test [field] : String | -| Test.java:44:30:44:37 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | Test.java:44:5:44:18 | fluentNoop(...) [post update] : Test [field] : String | +| Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Reverse] : Test [field] : String | Test.java:20:12:20:15 | this [post update] : Test [field] : String | +| Test.java:44:5:44:18 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Reverse] : Test [field] : String | Test.java:44:5:44:5 | t [post update] : Test [field] : String | +| Test.java:44:30:44:37 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | Test.java:44:5:44:18 | fluentNoop(...) [post update] : Test [field] : String | | Test.java:45:10:45:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | field : String | Test.java:45:10:45:16 | get(...) | -| Test.java:50:5:50:20 | identity(...) [Reverse] : Test [field] : String | Test.java:29:12:29:12 | t [Reverse] : Test [field] : String | Test.java:28:31:28:36 | t [Return] : Test [field] : String | Test.java:50:19:50:19 | t [post update] : Test [field] : String | -| Test.java:50:5:50:33 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Return] : Test [field] : String | Test.java:50:5:50:20 | identity(...) [post update] : Test [field] : String | -| Test.java:50:45:50:52 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | Test.java:50:5:50:33 | fluentNoop(...) [post update] : Test [field] : String | +| Test.java:50:5:50:20 | identity(...) [Reverse] : Test [field] : String | Test.java:29:12:29:12 | t [Reverse] : Test [field] : String | Test.java:28:31:28:36 | t [Reverse] : Test [field] : String | Test.java:50:19:50:19 | t [post update] : Test [field] : String | +| Test.java:50:5:50:33 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:6:12:6:15 | this [Reverse] : Test [field] : String | Test.java:5:15:5:24 | parameter this [Reverse] : Test [field] : String | Test.java:50:5:50:20 | identity(...) [post update] : Test [field] : String | +| Test.java:50:45:50:52 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | Test.java:50:5:50:33 | fluentNoop(...) [post update] : Test [field] : String | | Test.java:51:10:51:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | field : String | Test.java:51:10:51:16 | get(...) | -| Test.java:56:5:56:28 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Return] : Test [field] : String | Test.java:56:5:56:5 | t [post update] : Test [field] : String | -| Test.java:56:40:56:47 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | Test.java:56:5:56:28 | indirectlyFluentNoop(...) [post update] : Test [field] : String | +| Test.java:56:5:56:28 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Reverse] : Test [field] : String | Test.java:56:5:56:5 | t [post update] : Test [field] : String | +| Test.java:56:40:56:47 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | Test.java:56:5:56:28 | indirectlyFluentNoop(...) [post update] : Test [field] : String | | Test.java:57:10:57:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | field : String | Test.java:57:10:57:16 | get(...) | -| Test.java:62:5:62:28 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Return] : Test [field] : String | Test.java:62:5:62:5 | t [post update] : Test [field] : String | -| Test.java:62:63:62:70 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | Test.java:62:5:62:51 | modelledFluentMethod(...) [post update] : Test [field] : String | +| Test.java:62:5:62:28 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Reverse] : Test [field] : String | Test.java:62:5:62:5 | t [post update] : Test [field] : String | +| Test.java:62:63:62:70 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | Test.java:62:5:62:51 | modelledFluentMethod(...) [post update] : Test [field] : String | | Test.java:63:10:63:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | field : String | Test.java:63:10:63:16 | get(...) | -| Test.java:68:5:68:51 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Return] : Test [field] : String | Test.java:68:5:68:28 | modelledIdentity(...) [post update] : Test [field] : String | -| Test.java:68:86:68:93 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Return] : Test [field] : String | Test.java:68:5:68:74 | modelledFluentMethod(...) [post update] : Test [field] : String | +| Test.java:68:5:68:51 | indirectlyFluentNoop(...) [Reverse] : Test [field] : String | Test.java:20:12:20:28 | fluentNoop(...) [Reverse] : Test [field] : String | Test.java:19:15:19:34 | parameter this [Reverse] : Test [field] : String | Test.java:68:5:68:28 | modelledIdentity(...) [post update] : Test [field] : String | +| Test.java:68:86:68:93 | source(...) : String | Test.java:23:25:23:32 | x : String | Test.java:23:15:23:23 | parameter this [Reverse] : Test [field] : String | Test.java:68:5:68:74 | modelledFluentMethod(...) [post update] : Test [field] : String | | Test.java:69:10:69:10 | t : Test [field] : String | Test.java:32:17:32:19 | parameter this : Test [field] : String | Test.java:33:12:33:16 | field : String | Test.java:69:10:69:16 | get(...) | testFailures diff --git a/java/ql/test/library-tests/dataflow/partial/testRev.expected b/java/ql/test/library-tests/dataflow/partial/testRev.expected index 0ea05d73396ef..e6b50a0242a7b 100644 --- a/java/ql/test/library-tests/dataflow/partial/testRev.expected +++ b/java/ql/test/library-tests/dataflow/partial/testRev.expected @@ -1,6 +1,8 @@ edges | A.java:4:16:4:18 | parameter this [Return] [elem] | A.java:22:17:22:25 | new Box(...) [elem] | -| A.java:4:16:4:18 | parameter this [Reverse] [elem] | A.java:4:16:4:18 | parameter this [Return] [elem] | +| A.java:4:16:4:18 | parameter this [Reverse] [elem] | A.java:22:17:22:25 | new Box(...) [elem] | +| A.java:4:16:4:18 | parameter this [Reverse] [elem] | A.java:22:17:22:25 | new Box(...) [elem] | +| A.java:4:16:4:18 | this [Reverse] [elem] | A.java:4:16:4:18 | parameter this [Reverse] [elem] | | A.java:4:16:4:18 | this [Reverse] [elem] | A.java:4:16:4:18 | parameter this [Reverse] [elem] | | A.java:4:16:4:18 | this [post update] [elem] | A.java:4:16:4:18 | this [Reverse] [elem] | | A.java:5:19:5:22 | elem | A.java:24:10:24:19 | other.elem | @@ -9,7 +11,9 @@ edges | A.java:23:13:23:17 | other [post update] [elem] | A.java:24:10:24:14 | other [elem] | | A.java:24:10:24:14 | other [elem] | A.java:24:10:24:19 | other.elem | | A.java:27:16:27:20 | b [Return] [elem] | A.java:23:13:23:17 | other [post update] [elem] | -| A.java:27:16:27:20 | b [Reverse] [elem] | A.java:27:16:27:20 | b [Return] [elem] | +| A.java:27:16:27:20 | b [Reverse] [elem] | A.java:23:13:23:17 | other [post update] [elem] | +| A.java:27:16:27:20 | b [Reverse] [elem] | A.java:23:13:23:17 | other [post update] [elem] | +| A.java:28:5:28:5 | b [Reverse] [elem] | A.java:27:16:27:20 | b [Reverse] [elem] | | A.java:28:5:28:5 | b [Reverse] [elem] | A.java:27:16:27:20 | b [Reverse] [elem] | | A.java:28:5:28:5 | b [post update] [elem] | A.java:28:5:28:5 | b [Reverse] [elem] | | A.java:28:14:28:25 | new Object(...) | A.java:28:5:28:5 | b [post update] [elem] | @@ -20,11 +24,15 @@ edges | 0 | A.java:24:10:24:14 | other [elem] | | 1 | A.java:4:16:4:18 | parameter this [Return] [elem] | | 1 | A.java:4:16:4:18 | parameter this [Reverse] [elem] | +| 1 | A.java:4:16:4:18 | parameter this [Reverse] [elem] | +| 1 | A.java:4:16:4:18 | this [Reverse] [elem] | | 1 | A.java:4:16:4:18 | this [Reverse] [elem] | | 1 | A.java:4:16:4:18 | this [post update] [elem] | | 1 | A.java:5:19:5:22 | elem | | 1 | A.java:27:16:27:20 | b [Return] [elem] | | 1 | A.java:27:16:27:20 | b [Reverse] [elem] | +| 1 | A.java:27:16:27:20 | b [Reverse] [elem] | +| 1 | A.java:28:5:28:5 | b [Reverse] [elem] | | 1 | A.java:28:5:28:5 | b [Reverse] [elem] | | 1 | A.java:28:5:28:5 | b [post update] [elem] | | 1 | A.java:28:14:28:25 | new Object(...) | diff --git a/java/ql/test/library-tests/frameworks/apache-collections/test.expected b/java/ql/test/library-tests/frameworks/apache-collections/test.expected index a75de01c61230..17e33880a21b0 100644 --- a/java/ql/test/library-tests/frameworks/apache-collections/test.expected +++ b/java/ql/test/library-tests/frameworks/apache-collections/test.expected @@ -9387,10 +9387,10 @@ edges | Test.java:7043:22:7043:26 | key : String | Test.java:7044:10:7044:12 | key : String | provenance | | | Test.java:7043:29:7043:35 | value : Object | Test.java:7044:15:7044:19 | value : Object | provenance | | | Test.java:7043:29:7043:35 | value : String | Test.java:7044:15:7044:19 | value : String | provenance | | -| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | provenance | | -| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : String | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | provenance | | -| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | provenance | | -| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : String | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | provenance | | +| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | provenance | | +| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : String | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | provenance | | +| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | provenance | | +| Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : String | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | provenance | | | Test.java:7044:10:7044:12 | key : Object | Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | provenance | MaD:191 | | Test.java:7044:10:7044:12 | key : String | Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : String | provenance | MaD:191 | | Test.java:7044:15:7044:19 | value : Object | Test.java:7044:4:7044:21 | this [post update] : MyAbstractKeyValue [] : Object | provenance | MaD:192 | @@ -9398,29 +9398,29 @@ edges | Test.java:7047:5:7047:12 | parameter this : MyAbstractKeyValue [] : String | Test.java:7048:11:7048:15 | super : MyAbstractKeyValue [] : String | provenance | | | Test.java:7047:14:7047:24 | key : Object | Test.java:7048:24:7048:26 | key : Object | provenance | | | Test.java:7048:11:7048:15 | super : MyAbstractKeyValue [] : String | Test.java:7048:11:7048:27 | setKey(...) : String | provenance | MaD:194 | -| Test.java:7048:11:7048:15 | super [post update] : MyAbstractKeyValue [] : Object | Test.java:7047:5:7047:12 | parameter this [Return] : MyAbstractKeyValue [] : Object | provenance | | +| Test.java:7048:11:7048:15 | super [post update] : MyAbstractKeyValue [] : Object | Test.java:7047:5:7047:12 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | provenance | | | Test.java:7048:24:7048:26 | key : Object | Test.java:7048:11:7048:15 | super [post update] : MyAbstractKeyValue [] : Object | provenance | MaD:193 | | Test.java:7051:5:7051:14 | parameter this : MyAbstractKeyValue [] : String | Test.java:7052:11:7052:15 | super : MyAbstractKeyValue [] : String | provenance | | | Test.java:7051:16:7051:28 | value : Object | Test.java:7052:26:7052:30 | value : Object | provenance | | | Test.java:7052:11:7052:15 | super : MyAbstractKeyValue [] : String | Test.java:7052:11:7052:31 | setValue(...) : String | provenance | MaD:196 | -| Test.java:7052:11:7052:15 | super [post update] : MyAbstractKeyValue [] : Object | Test.java:7051:5:7051:14 | parameter this [Return] : MyAbstractKeyValue [] : Object | provenance | | +| Test.java:7052:11:7052:15 | super [post update] : MyAbstractKeyValue [] : Object | Test.java:7051:5:7051:14 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | provenance | | | Test.java:7052:26:7052:30 | value : Object | Test.java:7052:11:7052:15 | super [post update] : MyAbstractKeyValue [] : Object | provenance | MaD:195 | | Test.java:7057:22:7057:32 | key : Object | Test.java:7058:10:7058:12 | key : Object | provenance | | | Test.java:7057:22:7057:32 | key : String | Test.java:7058:10:7058:12 | key : String | provenance | | | Test.java:7057:35:7057:47 | value : Object | Test.java:7058:15:7058:19 | value : Object | provenance | | | Test.java:7057:35:7057:47 | value : String | Test.java:7058:15:7058:19 | value : String | provenance | | -| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | provenance | | -| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | provenance | | -| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | provenance | | -| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | provenance | | +| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | provenance | | +| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | provenance | | +| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | provenance | | +| Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | provenance | | | Test.java:7058:10:7058:12 | key : Object | Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | provenance | MaD:197 | | Test.java:7058:10:7058:12 | key : String | Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | provenance | MaD:197 | | Test.java:7058:15:7058:19 | value : Object | Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : Object | provenance | MaD:198 | | Test.java:7058:15:7058:19 | value : String | Test.java:7058:4:7058:21 | this [post update] : MyAbstractMapEntry [] : String | provenance | MaD:198 | | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7068:10:7068:14 | entry : MyAbstractMapEntry [] : String | provenance | | | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7068:10:7068:14 | entry : MyAbstractMapEntry [] : String | provenance | | -| Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | provenance | | -| Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | provenance | | +| Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | provenance | | +| Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | provenance | | | Test.java:7068:10:7068:14 | entry : MyAbstractMapEntry [] : String | Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | provenance | MaD:199 | | Test.java:7068:10:7068:14 | entry : MyAbstractMapEntry [] : String | Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | provenance | MaD:200 | | Test.java:7071:19:7071:31 | parameter this : MyAbstractMapEntryDecorator [] : String | Test.java:7072:11:7072:15 | super : MyAbstractMapEntryDecorator [] : String | provenance | | @@ -9431,37 +9431,37 @@ edges | Test.java:7082:43:7082:58 | this <.method> : MySetView [] : String | Test.java:7082:43:7082:58 | createIterator(...) : Iterator [] : String | provenance | MaD:789 | | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | provenance | | | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | provenance | | -| Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | provenance | | -| Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | provenance | | +| Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | provenance | | +| Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | provenance | | | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | provenance | MaD:54 | | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | provenance | MaD:55 | | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | provenance | | | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | provenance | | -| Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | provenance | | -| Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | provenance | | +| Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | provenance | | +| Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | provenance | | | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | provenance | MaD:273 | | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | provenance | MaD:274 | | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7099:10:7099:12 | map : TreeMap [] : String | provenance | | | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7099:10:7099:12 | map : TreeMap [] : String | provenance | | -| Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | provenance | | -| Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | provenance | | +| Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | provenance | | +| Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | provenance | | | Test.java:7099:10:7099:12 | map : TreeMap [] : String | Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | provenance | MaD:275 | | Test.java:7099:10:7099:12 | map : TreeMap [] : String | Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | provenance | MaD:276 | | Test.java:7104:33:7104:48 | bag : TreeBag [] : String | Test.java:7105:10:7105:12 | bag : TreeBag [] : String | provenance | | -| Test.java:7105:4:7105:14 | this [post update] : MyAbstractBagDecorator [] : String | Test.java:7104:10:7104:31 | parameter this [Return] : MyAbstractBagDecorator [] : String | provenance | | +| Test.java:7105:4:7105:14 | this [post update] : MyAbstractBagDecorator [] : String | Test.java:7104:10:7104:31 | parameter this [Reverse] : MyAbstractBagDecorator [] : String | provenance | | | Test.java:7105:10:7105:12 | bag : TreeBag [] : String | Test.java:7105:4:7105:14 | this [post update] : MyAbstractBagDecorator [] : String | provenance | MaD:26 | | Test.java:7110:27:7110:58 | map : Map [] : String | Test.java:7111:10:7111:12 | map : Map [] : String | provenance | | -| Test.java:7111:4:7111:14 | this [post update] : MyAbstractMapBag [] : String | Test.java:7110:10:7110:25 | parameter this [Return] : MyAbstractMapBag [] : String | provenance | | +| Test.java:7111:4:7111:14 | this [post update] : MyAbstractMapBag [] : String | Test.java:7110:10:7110:25 | parameter this [Reverse] : MyAbstractMapBag [] : String | provenance | | | Test.java:7111:10:7111:12 | map : Map [] : String | Test.java:7111:4:7111:14 | this [post update] : MyAbstractMapBag [] : String | provenance | MaD:27 | | Test.java:7113:33:7113:40 | parameter this : MyAbstractMapBag [] : String | Test.java:7114:11:7114:15 | super : MyAbstractMapBag [] : String | provenance | | | Test.java:7114:11:7114:15 | super : MyAbstractMapBag [] : String | Test.java:7114:11:7114:24 | getMap(...) : Map [] : String | provenance | MaD:28 | | Test.java:7119:39:7119:60 | bag : TreeBag [] : String | Test.java:7120:10:7120:12 | bag : TreeBag [] : String | provenance | | -| Test.java:7120:4:7120:14 | this [post update] : MyAbstractSortedBagDecorator [] : String | Test.java:7119:10:7119:37 | parameter this [Return] : MyAbstractSortedBagDecorator [] : String | provenance | | +| Test.java:7120:4:7120:14 | this [post update] : MyAbstractSortedBagDecorator [] : String | Test.java:7119:10:7119:37 | parameter this [Reverse] : MyAbstractSortedBagDecorator [] : String | provenance | | | Test.java:7120:10:7120:12 | bag : TreeBag [] : String | Test.java:7120:4:7120:14 | this [post update] : MyAbstractSortedBagDecorator [] : String | provenance | MaD:29 | | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | provenance | | | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | provenance | | -| Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | provenance | | -| Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | provenance | | +| Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | provenance | | +| Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | provenance | | | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | provenance | MaD:44 | | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | provenance | MaD:45 | | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | Test.java:7135:10:7135:18 | normalMap : DualTreeBidiMap [] : String | provenance | | @@ -9470,12 +9470,12 @@ edges | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | Test.java:7135:21:7135:30 | reverseMap : DualTreeBidiMap [] : String | provenance | | | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7135:33:7135:46 | inverseBidiMap : DualTreeBidiMap [] : String | provenance | | | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7135:33:7135:46 | inverseBidiMap : DualTreeBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | -| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | +| Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | provenance | | | Test.java:7135:10:7135:18 | normalMap : DualTreeBidiMap [] : String | Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | provenance | MaD:46 | | Test.java:7135:10:7135:18 | normalMap : DualTreeBidiMap [] : String | Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | provenance | MaD:47 | | Test.java:7135:21:7135:30 | reverseMap : DualTreeBidiMap [] : String | Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | provenance | MaD:48 | @@ -9484,30 +9484,30 @@ edges | Test.java:7135:33:7135:46 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7135:4:7135:48 | this [post update] : MyAbstractDualBidiMap [] : String | provenance | MaD:51 | | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | provenance | | | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | provenance | | -| Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | | -| Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | | +| Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | | +| Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | | | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | MaD:52 | | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | provenance | MaD:53 | | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | Test.java:7150:10:7150:13 | coll : TreeBag [] : String | provenance | | -| Test.java:7150:4:7150:15 | this [post update] : MyAbstractCollectionDecorator [] : String | Test.java:7149:10:7149:38 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | provenance | | +| Test.java:7150:4:7150:15 | this [post update] : MyAbstractCollectionDecorator [] : String | Test.java:7149:10:7149:38 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | provenance | | | Test.java:7150:10:7150:13 | coll : TreeBag [] : String | Test.java:7150:4:7150:15 | this [post update] : MyAbstractCollectionDecorator [] : String | provenance | MaD:76 | | Test.java:7152:24:7152:34 | parameter this : MyAbstractCollectionDecorator [] : String | Test.java:7153:11:7153:15 | super : MyAbstractCollectionDecorator [] : String | provenance | | | Test.java:7153:11:7153:15 | super : MyAbstractCollectionDecorator [] : String | Test.java:7153:11:7153:27 | decorated(...) : Collection [] : String | provenance | MaD:77 | | Test.java:7155:31:7155:54 | coll : TreeBag [] : String | Test.java:7156:24:7156:27 | coll : TreeBag [] : String | provenance | | -| Test.java:7156:4:7156:8 | super [post update] : MyAbstractCollectionDecorator [] : String | Test.java:7155:15:7155:29 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | provenance | | +| Test.java:7156:4:7156:8 | super [post update] : MyAbstractCollectionDecorator [] : String | Test.java:7155:15:7155:29 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | provenance | | | Test.java:7156:24:7156:27 | coll : TreeBag [] : String | Test.java:7156:4:7156:8 | super [post update] : MyAbstractCollectionDecorator [] : String | provenance | MaD:78 | | Test.java:7161:38:7161:63 | iterator : ListIterator [] : String | Test.java:7162:10:7162:17 | iterator : ListIterator [] : String | provenance | | -| Test.java:7162:4:7162:19 | this [post update] : MyAbstractIteratorDecorator [] : String | Test.java:7161:10:7161:36 | parameter this [Return] : MyAbstractIteratorDecorator [] : String | provenance | | +| Test.java:7162:4:7162:19 | this [post update] : MyAbstractIteratorDecorator [] : String | Test.java:7161:10:7161:36 | parameter this [Reverse] : MyAbstractIteratorDecorator [] : String | provenance | | | Test.java:7162:10:7162:17 | iterator : ListIterator [] : String | Test.java:7162:4:7162:19 | this [post update] : MyAbstractIteratorDecorator [] : String | provenance | MaD:116 | | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | Test.java:7168:10:7168:17 | iterator : ListIterator [] : String | provenance | | -| Test.java:7168:4:7168:19 | this [post update] : MyAbstractListIteratorDecorator [] : String | Test.java:7167:10:7167:40 | parameter this [Return] : MyAbstractListIteratorDecorator [] : String | provenance | | +| Test.java:7168:4:7168:19 | this [post update] : MyAbstractListIteratorDecorator [] : String | Test.java:7167:10:7167:40 | parameter this [Reverse] : MyAbstractListIteratorDecorator [] : String | provenance | | | Test.java:7168:10:7168:17 | iterator : ListIterator [] : String | Test.java:7168:4:7168:19 | this [post update] : MyAbstractListIteratorDecorator [] : String | provenance | MaD:117 | | Test.java:7170:26:7170:42 | parameter this : MyAbstractListIteratorDecorator [] : String | Test.java:7171:11:7171:15 | super : MyAbstractListIteratorDecorator [] : String | provenance | | | Test.java:7171:11:7171:15 | super : MyAbstractListIteratorDecorator [] : String | Test.java:7171:11:7171:33 | getListIterator(...) : ListIterator [] : String | provenance | MaD:118 | | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7177:10:7177:17 | iterator : OrderedMapIterator [] : String | provenance | | | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7177:10:7177:17 | iterator : OrderedMapIterator [] : String | provenance | | -| Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | provenance | | -| Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | provenance | | +| Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | provenance | | +| Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | provenance | | | Test.java:7177:10:7177:17 | iterator : OrderedMapIterator [] : String | Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | provenance | MaD:119 | | Test.java:7177:10:7177:17 | iterator : OrderedMapIterator [] : String | Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | provenance | MaD:120 | | Test.java:7179:28:7179:43 | parameter this : MyAbstractMapIteratorDecorator [] : String | Test.java:7180:11:7180:15 | super : MyAbstractMapIteratorDecorator [] : String | provenance | | @@ -9516,8 +9516,8 @@ edges | Test.java:7180:11:7180:15 | super : MyAbstractMapIteratorDecorator [] : String | Test.java:7180:11:7180:32 | getMapIterator(...) : MapIterator [] : String | provenance | MaD:122 | | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7186:10:7186:17 | iterator : OrderedMapIterator [] : String | provenance | | | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7186:10:7186:17 | iterator : OrderedMapIterator [] : String | provenance | | -| Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | | -| Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | | +| Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | | +| Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | | | Test.java:7186:10:7186:17 | iterator : OrderedMapIterator [] : String | Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | MaD:123 | | Test.java:7186:10:7186:17 | iterator : OrderedMapIterator [] : String | Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | MaD:124 | | Test.java:7188:35:7188:57 | parameter this : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7189:11:7189:15 | super : MyAbstractOrderedMapIteratorDecorator [] : String | provenance | | @@ -9525,35 +9525,35 @@ edges | Test.java:7189:11:7189:15 | super : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | provenance | MaD:125 | | Test.java:7189:11:7189:15 | super : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | provenance | MaD:126 | | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | Test.java:7195:10:7195:17 | iterator : ListIterator [] : String | provenance | | -| Test.java:7195:4:7195:19 | this [post update] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7194:10:7194:43 | parameter this [Return] : MyAbstractUntypedIteratorDecorator [] : String | provenance | | +| Test.java:7195:4:7195:19 | this [post update] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7194:10:7194:43 | parameter this [Reverse] : MyAbstractUntypedIteratorDecorator [] : String | provenance | | | Test.java:7195:10:7195:17 | iterator : ListIterator [] : String | Test.java:7195:4:7195:19 | this [post update] : MyAbstractUntypedIteratorDecorator [] : String | provenance | MaD:127 | | Test.java:7197:22:7197:34 | parameter this : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7198:11:7198:15 | super : MyAbstractUntypedIteratorDecorator [] : String | provenance | | | Test.java:7198:11:7198:15 | super : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7198:11:7198:29 | getIterator(...) : Iterator [] : String | provenance | MaD:128 | | Test.java:7204:31:7204:64 | coll : TreeBag [] : String | Test.java:7205:10:7205:13 | coll : TreeBag [] : String | provenance | | -| Test.java:7205:4:7205:15 | this [post update] : MyAbstractLinkedList [] : String | Test.java:7204:10:7204:29 | parameter this [Return] : MyAbstractLinkedList [] : String | provenance | | +| Test.java:7205:4:7205:15 | this [post update] : MyAbstractLinkedList [] : String | Test.java:7204:10:7204:29 | parameter this [Reverse] : MyAbstractLinkedList [] : String | provenance | | | Test.java:7205:10:7205:13 | coll : TreeBag [] : String | Test.java:7205:4:7205:15 | this [post update] : MyAbstractLinkedList [] : String | provenance | MaD:243 | | Test.java:7210:34:7210:51 | list : List [] : String | Test.java:7211:10:7211:13 | list : List [] : String | provenance | | -| Test.java:7211:4:7211:15 | this [post update] : MyAbstractListDecorator [] : String | Test.java:7210:10:7210:32 | parameter this [Return] : MyAbstractListDecorator [] : String | provenance | | +| Test.java:7211:4:7211:15 | this [post update] : MyAbstractListDecorator [] : String | Test.java:7210:10:7210:32 | parameter this [Reverse] : MyAbstractListDecorator [] : String | provenance | | | Test.java:7211:10:7211:13 | list : List [] : String | Test.java:7211:4:7211:15 | this [post update] : MyAbstractListDecorator [] : String | provenance | MaD:250 | | Test.java:7216:46:7216:63 | list : List [] : String | Test.java:7217:10:7217:13 | list : List [] : String | provenance | | -| Test.java:7217:4:7217:15 | this [post update] : MyAbstractSerializableListDecorator [] : String | Test.java:7216:10:7216:44 | parameter this [Return] : MyAbstractSerializableListDecorator [] : String | provenance | | +| Test.java:7217:4:7217:15 | this [post update] : MyAbstractSerializableListDecorator [] : String | Test.java:7216:10:7216:44 | parameter this [Reverse] : MyAbstractSerializableListDecorator [] : String | provenance | | | Test.java:7217:10:7217:13 | list : List [] : String | Test.java:7217:4:7217:15 | this [post update] : MyAbstractSerializableListDecorator [] : String | provenance | MaD:251 | | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7223:10:7223:12 | map : Map [] : String | provenance | | | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7223:10:7223:12 | map : Map [] : String | provenance | | -| Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | provenance | | -| Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | provenance | | +| Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | provenance | | +| Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | provenance | | | Test.java:7223:10:7223:12 | map : Map [] : String | Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | provenance | MaD:265 | | Test.java:7223:10:7223:12 | map : Map [] : String | Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | provenance | MaD:266 | | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7229:10:7229:12 | map : Map [] : String | provenance | | | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7229:10:7229:12 | map : Map [] : String | provenance | | -| Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | provenance | | -| Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | provenance | | +| Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | provenance | | +| Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | provenance | | | Test.java:7229:10:7229:12 | map : Map [] : String | Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | provenance | MaD:267 | | Test.java:7229:10:7229:12 | map : Map [] : String | Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | provenance | MaD:268 | | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7235:10:7235:12 | map : Map [] : String | provenance | | | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7235:10:7235:12 | map : Map [] : String | provenance | | -| Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | provenance | | -| Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | provenance | | +| Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | provenance | | +| Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | provenance | | | Test.java:7235:10:7235:12 | map : Map [] : String | Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | provenance | MaD:269 | | Test.java:7235:10:7235:12 | map : Map [] : String | Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | provenance | MaD:270 | | Test.java:7237:20:7237:30 | parameter this : MyAbstractMapDecorator [] : String | Test.java:7238:11:7238:15 | super : MyAbstractMapDecorator [] : String | provenance | | @@ -9561,13 +9561,13 @@ edges | Test.java:7238:11:7238:15 | super : MyAbstractMapDecorator [] : String | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | provenance | MaD:271 | | Test.java:7238:11:7238:15 | super : MyAbstractMapDecorator [] : String | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | provenance | MaD:272 | | Test.java:7243:42:7243:66 | set : TreeSet [] : String | Test.java:7244:10:7244:12 | set : TreeSet [] : String | provenance | | -| Test.java:7244:4:7244:14 | this [post update] : MyAbstractNavigableSetDecorator [] : String | Test.java:7243:10:7243:40 | parameter this [Return] : MyAbstractNavigableSetDecorator [] : String | provenance | | +| Test.java:7244:4:7244:14 | this [post update] : MyAbstractNavigableSetDecorator [] : String | Test.java:7243:10:7243:40 | parameter this [Reverse] : MyAbstractNavigableSetDecorator [] : String | provenance | | | Test.java:7244:10:7244:12 | set : TreeSet [] : String | Test.java:7244:4:7244:14 | this [post update] : MyAbstractNavigableSetDecorator [] : String | provenance | MaD:423 | | Test.java:7249:33:7249:48 | set : ListOrderedSet [] : String | Test.java:7250:10:7250:12 | set : ListOrderedSet [] : String | provenance | | -| Test.java:7250:4:7250:14 | this [post update] : MyAbstractSetDecorator [] : String | Test.java:7249:10:7249:31 | parameter this [Return] : MyAbstractSetDecorator [] : String | provenance | | +| Test.java:7250:4:7250:14 | this [post update] : MyAbstractSetDecorator [] : String | Test.java:7249:10:7249:31 | parameter this [Reverse] : MyAbstractSetDecorator [] : String | provenance | | | Test.java:7250:10:7250:12 | set : ListOrderedSet [] : String | Test.java:7250:4:7250:14 | this [post update] : MyAbstractSetDecorator [] : String | provenance | MaD:424 | | Test.java:7255:39:7255:54 | set : ListOrderedSet [] : String | Test.java:7256:10:7256:12 | set : ListOrderedSet [] : String | provenance | | -| Test.java:7256:4:7256:14 | this [post update] : MyAbstractSortedSetDecorator [] : String | Test.java:7255:10:7255:37 | parameter this [Return] : MyAbstractSortedSetDecorator [] : String | provenance | | +| Test.java:7256:4:7256:14 | this [post update] : MyAbstractSortedSetDecorator [] : String | Test.java:7255:10:7255:37 | parameter this [Reverse] : MyAbstractSortedSetDecorator [] : String | provenance | | | Test.java:7256:10:7256:12 | set : ListOrderedSet [] : String | Test.java:7256:4:7256:14 | this [post update] : MyAbstractSortedSetDecorator [] : String | provenance | MaD:425 | nodes | Test.java:228:18:228:29 | map : AbstractMapDecorator [] : Object | semmle.label | map : AbstractMapDecorator [] : Object | @@ -17480,10 +17480,10 @@ nodes | Test.java:7036:44:7036:45 | in : PatriciaTrie [] : String | semmle.label | in : PatriciaTrie [] : String | | Test.java:7037:9:7037:24 | getMapValue(...) | semmle.label | getMapValue(...) | | Test.java:7037:21:7037:23 | out : Trie [] : String | semmle.label | out : Trie [] : String | -| Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : Object | -| Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : String | -| Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : Object | -| Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : String | +| Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : Object | +| Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : String | +| Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : Object | +| Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : String | | Test.java:7043:22:7043:26 | key : Object | semmle.label | key : Object | | Test.java:7043:22:7043:26 | key : String | semmle.label | key : String | | Test.java:7043:29:7043:35 | value : Object | semmle.label | value : Object | @@ -17497,23 +17497,23 @@ nodes | Test.java:7044:15:7044:19 | value : Object | semmle.label | value : Object | | Test.java:7044:15:7044:19 | value : String | semmle.label | value : String | | Test.java:7047:5:7047:12 | parameter this : MyAbstractKeyValue [] : String | semmle.label | parameter this : MyAbstractKeyValue [] : String | -| Test.java:7047:5:7047:12 | parameter this [Return] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : Object | +| Test.java:7047:5:7047:12 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : Object | | Test.java:7047:14:7047:24 | key : Object | semmle.label | key : Object | | Test.java:7048:11:7048:15 | super : MyAbstractKeyValue [] : String | semmle.label | super : MyAbstractKeyValue [] : String | | Test.java:7048:11:7048:15 | super [post update] : MyAbstractKeyValue [] : Object | semmle.label | super [post update] : MyAbstractKeyValue [] : Object | | Test.java:7048:11:7048:27 | setKey(...) : String | semmle.label | setKey(...) : String | | Test.java:7048:24:7048:26 | key : Object | semmle.label | key : Object | | Test.java:7051:5:7051:14 | parameter this : MyAbstractKeyValue [] : String | semmle.label | parameter this : MyAbstractKeyValue [] : String | -| Test.java:7051:5:7051:14 | parameter this [Return] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Return] : MyAbstractKeyValue [] : Object | +| Test.java:7051:5:7051:14 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | semmle.label | parameter this [Reverse] : MyAbstractKeyValue [] : Object | | Test.java:7051:16:7051:28 | value : Object | semmle.label | value : Object | | Test.java:7052:11:7052:15 | super : MyAbstractKeyValue [] : String | semmle.label | super : MyAbstractKeyValue [] : String | | Test.java:7052:11:7052:15 | super [post update] : MyAbstractKeyValue [] : Object | semmle.label | super [post update] : MyAbstractKeyValue [] : Object | | Test.java:7052:11:7052:31 | setValue(...) : String | semmle.label | setValue(...) : String | | Test.java:7052:26:7052:30 | value : Object | semmle.label | value : Object | -| Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | semmle.label | parameter this [Return] : MyAbstractMapEntry [] : Object | -| Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | semmle.label | parameter this [Return] : MyAbstractMapEntry [] : String | -| Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | semmle.label | parameter this [Return] : MyAbstractMapEntry [] : Object | -| Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | semmle.label | parameter this [Return] : MyAbstractMapEntry [] : String | +| Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | semmle.label | parameter this [Reverse] : MyAbstractMapEntry [] : Object | +| Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapEntry [] : String | +| Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | semmle.label | parameter this [Reverse] : MyAbstractMapEntry [] : Object | +| Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapEntry [] : String | | Test.java:7057:22:7057:32 | key : Object | semmle.label | key : Object | | Test.java:7057:22:7057:32 | key : String | semmle.label | key : String | | Test.java:7057:35:7057:47 | value : Object | semmle.label | value : Object | @@ -17526,8 +17526,8 @@ nodes | Test.java:7058:10:7058:12 | key : String | semmle.label | key : String | | Test.java:7058:15:7058:19 | value : Object | semmle.label | value : Object | | Test.java:7058:15:7058:19 | value : String | semmle.label | value : String | -| Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | -| Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | +| Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | +| Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | semmle.label | entry : MyAbstractMapEntry [] : String | | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | semmle.label | entry : MyAbstractMapEntry [] : String | | Test.java:7068:4:7068:16 | this [post update] : MyAbstractMapEntryDecorator [] : String | semmle.label | this [post update] : MyAbstractMapEntryDecorator [] : String | @@ -17543,59 +17543,59 @@ nodes | Test.java:7082:15:7082:30 | parameter this : MySetView [] : String | semmle.label | parameter this : MySetView [] : String | | Test.java:7082:43:7082:58 | createIterator(...) : Iterator [] : String | semmle.label | createIterator(...) : Iterator [] : String | | Test.java:7082:43:7082:58 | this <.method> : MySetView [] : String | semmle.label | this <.method> : MySetView [] : String | -| Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | -| Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | +| Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | +| Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | | Test.java:7087:4:7087:14 | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedBidiMapDecorator [] : String | | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7087:10:7087:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | -| Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | -| Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | +| Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | +| Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | semmle.label | map : ListOrderedMap [] : String | | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | semmle.label | map : ListOrderedMap [] : String | | Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | semmle.label | this [post update] : MyAbstractOrderedMapDecorator [] : String | | Test.java:7093:4:7093:14 | this [post update] : MyAbstractOrderedMapDecorator [] : String | semmle.label | this [post update] : MyAbstractOrderedMapDecorator [] : String | | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | semmle.label | map : ListOrderedMap [] : String | | Test.java:7093:10:7093:12 | map : ListOrderedMap [] : String | semmle.label | map : ListOrderedMap [] : String | -| Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | -| Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | +| Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | +| Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | | Test.java:7098:39:7098:63 | map : TreeMap [] : String | semmle.label | map : TreeMap [] : String | | Test.java:7098:39:7098:63 | map : TreeMap [] : String | semmle.label | map : TreeMap [] : String | | Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedMapDecorator [] : String | | Test.java:7099:4:7099:14 | this [post update] : MyAbstractSortedMapDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedMapDecorator [] : String | | Test.java:7099:10:7099:12 | map : TreeMap [] : String | semmle.label | map : TreeMap [] : String | | Test.java:7099:10:7099:12 | map : TreeMap [] : String | semmle.label | map : TreeMap [] : String | -| Test.java:7104:10:7104:31 | parameter this [Return] : MyAbstractBagDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractBagDecorator [] : String | +| Test.java:7104:10:7104:31 | parameter this [Reverse] : MyAbstractBagDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractBagDecorator [] : String | | Test.java:7104:33:7104:48 | bag : TreeBag [] : String | semmle.label | bag : TreeBag [] : String | | Test.java:7105:4:7105:14 | this [post update] : MyAbstractBagDecorator [] : String | semmle.label | this [post update] : MyAbstractBagDecorator [] : String | | Test.java:7105:10:7105:12 | bag : TreeBag [] : String | semmle.label | bag : TreeBag [] : String | -| Test.java:7110:10:7110:25 | parameter this [Return] : MyAbstractMapBag [] : String | semmle.label | parameter this [Return] : MyAbstractMapBag [] : String | +| Test.java:7110:10:7110:25 | parameter this [Reverse] : MyAbstractMapBag [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapBag [] : String | | Test.java:7110:27:7110:58 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7111:4:7111:14 | this [post update] : MyAbstractMapBag [] : String | semmle.label | this [post update] : MyAbstractMapBag [] : String | | Test.java:7111:10:7111:12 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7113:33:7113:40 | parameter this : MyAbstractMapBag [] : String | semmle.label | parameter this : MyAbstractMapBag [] : String | | Test.java:7114:11:7114:15 | super : MyAbstractMapBag [] : String | semmle.label | super : MyAbstractMapBag [] : String | | Test.java:7114:11:7114:24 | getMap(...) : Map [] : String | semmle.label | getMap(...) : Map [] : String | -| Test.java:7119:10:7119:37 | parameter this [Return] : MyAbstractSortedBagDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedBagDecorator [] : String | +| Test.java:7119:10:7119:37 | parameter this [Reverse] : MyAbstractSortedBagDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedBagDecorator [] : String | | Test.java:7119:39:7119:60 | bag : TreeBag [] : String | semmle.label | bag : TreeBag [] : String | | Test.java:7120:4:7120:14 | this [post update] : MyAbstractSortedBagDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedBagDecorator [] : String | | Test.java:7120:10:7120:12 | bag : TreeBag [] : String | semmle.label | bag : TreeBag [] : String | -| Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | -| Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | +| Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | +| Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractBidiMapDecorator [] : String | | Test.java:7126:4:7126:14 | this [post update] : MyAbstractBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractBidiMapDecorator [] : String | | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7126:10:7126:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | -| Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Return] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | +| Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | semmle.label | normalMap : DualTreeBidiMap [] : String | | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | semmle.label | normalMap : DualTreeBidiMap [] : String | | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | semmle.label | reverseMap : DualTreeBidiMap [] : String | @@ -17614,38 +17614,38 @@ nodes | Test.java:7135:21:7135:30 | reverseMap : DualTreeBidiMap [] : String | semmle.label | reverseMap : DualTreeBidiMap [] : String | | Test.java:7135:33:7135:46 | inverseBidiMap : DualTreeBidiMap [] : String | semmle.label | inverseBidiMap : DualTreeBidiMap [] : String | | Test.java:7135:33:7135:46 | inverseBidiMap : DualTreeBidiMap [] : String | semmle.label | inverseBidiMap : DualTreeBidiMap [] : String | -| Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | -| Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | +| Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | +| Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | | Test.java:7144:4:7144:14 | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | semmle.label | this [post update] : MyAbstractOrderedBidiMapDecorator [] : String | | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | | Test.java:7144:10:7144:12 | map : DualTreeBidiMap [] : String | semmle.label | map : DualTreeBidiMap [] : String | -| Test.java:7149:10:7149:38 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractCollectionDecorator [] : String | +| Test.java:7149:10:7149:38 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | | Test.java:7150:4:7150:15 | this [post update] : MyAbstractCollectionDecorator [] : String | semmle.label | this [post update] : MyAbstractCollectionDecorator [] : String | | Test.java:7150:10:7150:13 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | | Test.java:7152:24:7152:34 | parameter this : MyAbstractCollectionDecorator [] : String | semmle.label | parameter this : MyAbstractCollectionDecorator [] : String | | Test.java:7153:11:7153:15 | super : MyAbstractCollectionDecorator [] : String | semmle.label | super : MyAbstractCollectionDecorator [] : String | | Test.java:7153:11:7153:27 | decorated(...) : Collection [] : String | semmle.label | decorated(...) : Collection [] : String | -| Test.java:7155:15:7155:29 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractCollectionDecorator [] : String | +| Test.java:7155:15:7155:29 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | | Test.java:7155:31:7155:54 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | | Test.java:7156:4:7156:8 | super [post update] : MyAbstractCollectionDecorator [] : String | semmle.label | super [post update] : MyAbstractCollectionDecorator [] : String | | Test.java:7156:24:7156:27 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | -| Test.java:7161:10:7161:36 | parameter this [Return] : MyAbstractIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractIteratorDecorator [] : String | +| Test.java:7161:10:7161:36 | parameter this [Reverse] : MyAbstractIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractIteratorDecorator [] : String | | Test.java:7161:38:7161:63 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | | Test.java:7162:4:7162:19 | this [post update] : MyAbstractIteratorDecorator [] : String | semmle.label | this [post update] : MyAbstractIteratorDecorator [] : String | | Test.java:7162:10:7162:17 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | -| Test.java:7167:10:7167:40 | parameter this [Return] : MyAbstractListIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractListIteratorDecorator [] : String | +| Test.java:7167:10:7167:40 | parameter this [Reverse] : MyAbstractListIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractListIteratorDecorator [] : String | | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | | Test.java:7168:4:7168:19 | this [post update] : MyAbstractListIteratorDecorator [] : String | semmle.label | this [post update] : MyAbstractListIteratorDecorator [] : String | | Test.java:7168:10:7168:17 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | | Test.java:7170:26:7170:42 | parameter this : MyAbstractListIteratorDecorator [] : String | semmle.label | parameter this : MyAbstractListIteratorDecorator [] : String | | Test.java:7171:11:7171:15 | super : MyAbstractListIteratorDecorator [] : String | semmle.label | super : MyAbstractListIteratorDecorator [] : String | | Test.java:7171:11:7171:33 | getListIterator(...) : ListIterator [] : String | semmle.label | getListIterator(...) : ListIterator [] : String | -| Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | -| Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | +| Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | +| Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | semmle.label | iterator : OrderedMapIterator [] : String | | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | semmle.label | iterator : OrderedMapIterator [] : String | | Test.java:7177:4:7177:19 | this [post update] : MyAbstractMapIteratorDecorator [] : String | semmle.label | this [post update] : MyAbstractMapIteratorDecorator [] : String | @@ -17658,8 +17658,8 @@ nodes | Test.java:7180:11:7180:15 | super : MyAbstractMapIteratorDecorator [] : String | semmle.label | super : MyAbstractMapIteratorDecorator [] : String | | Test.java:7180:11:7180:32 | getMapIterator(...) : MapIterator [] : String | semmle.label | getMapIterator(...) : MapIterator [] : String | | Test.java:7180:11:7180:32 | getMapIterator(...) : MapIterator [] : String | semmle.label | getMapIterator(...) : MapIterator [] : String | -| Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | -| Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | semmle.label | iterator : OrderedMapIterator [] : String | | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | semmle.label | iterator : OrderedMapIterator [] : String | | Test.java:7186:4:7186:19 | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | this [post update] : MyAbstractOrderedMapIteratorDecorator [] : String | @@ -17672,43 +17672,43 @@ nodes | Test.java:7189:11:7189:15 | super : MyAbstractOrderedMapIteratorDecorator [] : String | semmle.label | super : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | semmle.label | getOrderedMapIterator(...) : OrderedMapIterator [] : String | | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | semmle.label | getOrderedMapIterator(...) : OrderedMapIterator [] : String | -| Test.java:7194:10:7194:43 | parameter this [Return] : MyAbstractUntypedIteratorDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractUntypedIteratorDecorator [] : String | +| Test.java:7194:10:7194:43 | parameter this [Reverse] : MyAbstractUntypedIteratorDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | | Test.java:7195:4:7195:19 | this [post update] : MyAbstractUntypedIteratorDecorator [] : String | semmle.label | this [post update] : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:7195:10:7195:17 | iterator : ListIterator [] : String | semmle.label | iterator : ListIterator [] : String | | Test.java:7197:22:7197:34 | parameter this : MyAbstractUntypedIteratorDecorator [] : String | semmle.label | parameter this : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:7198:11:7198:15 | super : MyAbstractUntypedIteratorDecorator [] : String | semmle.label | super : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:7198:11:7198:29 | getIterator(...) : Iterator [] : String | semmle.label | getIterator(...) : Iterator [] : String | -| Test.java:7204:10:7204:29 | parameter this [Return] : MyAbstractLinkedList [] : String | semmle.label | parameter this [Return] : MyAbstractLinkedList [] : String | +| Test.java:7204:10:7204:29 | parameter this [Reverse] : MyAbstractLinkedList [] : String | semmle.label | parameter this [Reverse] : MyAbstractLinkedList [] : String | | Test.java:7204:31:7204:64 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | | Test.java:7205:4:7205:15 | this [post update] : MyAbstractLinkedList [] : String | semmle.label | this [post update] : MyAbstractLinkedList [] : String | | Test.java:7205:10:7205:13 | coll : TreeBag [] : String | semmle.label | coll : TreeBag [] : String | -| Test.java:7210:10:7210:32 | parameter this [Return] : MyAbstractListDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractListDecorator [] : String | +| Test.java:7210:10:7210:32 | parameter this [Reverse] : MyAbstractListDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractListDecorator [] : String | | Test.java:7210:34:7210:51 | list : List [] : String | semmle.label | list : List [] : String | | Test.java:7211:4:7211:15 | this [post update] : MyAbstractListDecorator [] : String | semmle.label | this [post update] : MyAbstractListDecorator [] : String | | Test.java:7211:10:7211:13 | list : List [] : String | semmle.label | list : List [] : String | -| Test.java:7216:10:7216:44 | parameter this [Return] : MyAbstractSerializableListDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSerializableListDecorator [] : String | +| Test.java:7216:10:7216:44 | parameter this [Reverse] : MyAbstractSerializableListDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSerializableListDecorator [] : String | | Test.java:7216:46:7216:63 | list : List [] : String | semmle.label | list : List [] : String | | Test.java:7217:4:7217:15 | this [post update] : MyAbstractSerializableListDecorator [] : String | semmle.label | this [post update] : MyAbstractSerializableListDecorator [] : String | | Test.java:7217:10:7217:13 | list : List [] : String | semmle.label | list : List [] : String | -| Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | semmle.label | parameter this [Return] : MyAbstractHashedMap [] : String | -| Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | semmle.label | parameter this [Return] : MyAbstractHashedMap [] : String | +| Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractHashedMap [] : String | +| Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractHashedMap [] : String | | Test.java:7222:30:7222:68 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7222:30:7222:68 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | semmle.label | this [post update] : MyAbstractHashedMap [] : String | | Test.java:7223:4:7223:14 | this [post update] : MyAbstractHashedMap [] : String | semmle.label | this [post update] : MyAbstractHashedMap [] : String | | Test.java:7223:10:7223:12 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7223:10:7223:12 | map : Map [] : String | semmle.label | map : Map [] : String | -| Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | semmle.label | parameter this [Return] : MyAbstractLinkedMap [] : String | -| Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | semmle.label | parameter this [Return] : MyAbstractLinkedMap [] : String | +| Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractLinkedMap [] : String | +| Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | semmle.label | parameter this [Reverse] : MyAbstractLinkedMap [] : String | | Test.java:7228:30:7228:68 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7228:30:7228:68 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | semmle.label | this [post update] : MyAbstractLinkedMap [] : String | | Test.java:7229:4:7229:14 | this [post update] : MyAbstractLinkedMap [] : String | semmle.label | this [post update] : MyAbstractLinkedMap [] : String | | Test.java:7229:10:7229:12 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7229:10:7229:12 | map : Map [] : String | semmle.label | map : Map [] : String | -| Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapDecorator [] : String | -| Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractMapDecorator [] : String | +| Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapDecorator [] : String | +| Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractMapDecorator [] : String | | Test.java:7234:33:7234:51 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7234:33:7234:51 | map : Map [] : String | semmle.label | map : Map [] : String | | Test.java:7235:4:7235:14 | this [post update] : MyAbstractMapDecorator [] : String | semmle.label | this [post update] : MyAbstractMapDecorator [] : String | @@ -17721,15 +17721,15 @@ nodes | Test.java:7238:11:7238:15 | super : MyAbstractMapDecorator [] : String | semmle.label | super : MyAbstractMapDecorator [] : String | | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | semmle.label | decorated(...) : Map [] : String | | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | semmle.label | decorated(...) : Map [] : String | -| Test.java:7243:10:7243:40 | parameter this [Return] : MyAbstractNavigableSetDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractNavigableSetDecorator [] : String | +| Test.java:7243:10:7243:40 | parameter this [Reverse] : MyAbstractNavigableSetDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractNavigableSetDecorator [] : String | | Test.java:7243:42:7243:66 | set : TreeSet [] : String | semmle.label | set : TreeSet [] : String | | Test.java:7244:4:7244:14 | this [post update] : MyAbstractNavigableSetDecorator [] : String | semmle.label | this [post update] : MyAbstractNavigableSetDecorator [] : String | | Test.java:7244:10:7244:12 | set : TreeSet [] : String | semmle.label | set : TreeSet [] : String | -| Test.java:7249:10:7249:31 | parameter this [Return] : MyAbstractSetDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSetDecorator [] : String | +| Test.java:7249:10:7249:31 | parameter this [Reverse] : MyAbstractSetDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSetDecorator [] : String | | Test.java:7249:33:7249:48 | set : ListOrderedSet [] : String | semmle.label | set : ListOrderedSet [] : String | | Test.java:7250:4:7250:14 | this [post update] : MyAbstractSetDecorator [] : String | semmle.label | this [post update] : MyAbstractSetDecorator [] : String | | Test.java:7250:10:7250:12 | set : ListOrderedSet [] : String | semmle.label | set : ListOrderedSet [] : String | -| Test.java:7255:10:7255:37 | parameter this [Return] : MyAbstractSortedSetDecorator [] : String | semmle.label | parameter this [Return] : MyAbstractSortedSetDecorator [] : String | +| Test.java:7255:10:7255:37 | parameter this [Reverse] : MyAbstractSortedSetDecorator [] : String | semmle.label | parameter this [Reverse] : MyAbstractSortedSetDecorator [] : String | | Test.java:7255:39:7255:54 | set : ListOrderedSet [] : String | semmle.label | set : ListOrderedSet [] : String | | Test.java:7256:4:7256:14 | this [post update] : MyAbstractSortedSetDecorator [] : String | semmle.label | this [post update] : MyAbstractSortedSetDecorator [] : String | | Test.java:7256:10:7256:12 | set : ListOrderedSet [] : String | semmle.label | set : ListOrderedSet [] : String | @@ -17743,21 +17743,21 @@ subpaths | Test.java:259:90:259:96 | element : String | Test.java:269:37:269:45 | element : String | Test.java:269:103:269:103 | v : Vector [] : String | Test.java:259:69:259:97 | newVectorWithElement(...) : Vector [] : String | | Test.java:262:83:262:124 | entrySet(...) : Set [, ] : String | Test.java:230:19:230:32 | it : Set [, ] : String | Test.java:230:44:230:63 | next(...) : Object [] : String | Test.java:262:72:262:125 | getElement(...) : Entry [] : String | | Test.java:262:106:262:112 | element : String | Test.java:263:41:263:49 | element : String | Test.java:263:119:263:119 | h : HashMultiSet [] : String | Test.java:262:83:262:113 | newMultiSetWithElement(...) : HashMultiSet [] : String | -| Test.java:280:102:280:104 | key : String | Test.java:7057:22:7057:32 | key : String | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | Test.java:280:69:280:110 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | -| Test.java:281:121:281:142 | newMAMEWithMapKey(...) : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | Test.java:281:79:281:143 | new MyAbstractMapEntryDecorator(...) : MyAbstractMapEntryDecorator [] : String | +| Test.java:280:102:280:104 | key : String | Test.java:7057:22:7057:32 | key : String | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | Test.java:280:69:280:110 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | +| Test.java:281:121:281:142 | newMAMEWithMapKey(...) : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | Test.java:281:79:281:143 | new MyAbstractMapEntryDecorator(...) : MyAbstractMapEntryDecorator [] : String | | Test.java:281:139:281:141 | key : String | Test.java:280:53:280:57 | key : String | Test.java:280:69:280:110 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | Test.java:281:121:281:142 | newMAMEWithMapKey(...) : MyAbstractMapEntry [] : String | -| Test.java:282:102:282:104 | key : String | Test.java:7043:22:7043:26 | key : String | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | Test.java:282:69:282:110 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | -| Test.java:299:111:299:115 | value : String | Test.java:7043:29:7043:35 | value : String | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : String | Test.java:299:73:299:116 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | -| Test.java:300:111:300:115 | value : String | Test.java:7057:35:7057:47 | value : String | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : String | Test.java:300:73:300:116 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | -| Test.java:301:125:301:150 | newMAMEWithMapValue(...) : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | Test.java:301:83:301:151 | new MyAbstractMapEntryDecorator(...) : MyAbstractMapEntryDecorator [] : String | +| Test.java:282:102:282:104 | key : String | Test.java:7043:22:7043:26 | key : String | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | Test.java:282:69:282:110 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | +| Test.java:299:111:299:115 | value : String | Test.java:7043:29:7043:35 | value : String | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : String | Test.java:299:73:299:116 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | +| Test.java:300:111:300:115 | value : String | Test.java:7057:35:7057:47 | value : String | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : String | Test.java:300:73:300:116 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | +| Test.java:301:125:301:150 | newMAMEWithMapValue(...) : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | Test.java:301:83:301:151 | new MyAbstractMapEntryDecorator(...) : MyAbstractMapEntryDecorator [] : String | | Test.java:301:145:301:149 | value : String | Test.java:300:55:300:61 | value : String | Test.java:300:73:300:116 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | Test.java:301:125:301:150 | newMAMEWithMapValue(...) : MyAbstractMapEntry [] : String | | Test.java:305:116:305:120 | value : String | Test.java:304:49:304:55 | value : String | Test.java:304:127:304:127 | m : TreeMap [] : String | Test.java:305:93:305:121 | newTreeMapWithMapValue(...) : TreeMap [] : String | -| Test.java:319:33:319:34 | in : Object | Test.java:7043:22:7043:26 | key : Object | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | Test.java:319:10:319:41 | new MyAbstractKeyValue<>(...) : MyAbstractKeyValue [] : Object | +| Test.java:319:33:319:34 | in : Object | Test.java:7043:22:7043:26 | key : Object | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | Test.java:319:10:319:41 | new MyAbstractKeyValue<>(...) : MyAbstractKeyValue [] : Object | | Test.java:320:19:320:21 | out : MyAbstractKeyValue [] : Object | Test.java:237:18:237:48 | container : MyAbstractKeyValue [] : Object | Test.java:237:60:237:77 | getKey(...) : Object | Test.java:320:9:320:22 | getMapKey(...) | -| Test.java:326:39:326:40 | in : Object | Test.java:7043:29:7043:35 | value : Object | Test.java:7043:3:7043:20 | parameter this [Return] : MyAbstractKeyValue [] : Object | Test.java:326:10:326:41 | new MyAbstractKeyValue<>(...) : MyAbstractKeyValue [] : Object | +| Test.java:326:39:326:40 | in : Object | Test.java:7043:29:7043:35 | value : Object | Test.java:7043:3:7043:20 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | Test.java:326:10:326:41 | new MyAbstractKeyValue<>(...) : MyAbstractKeyValue [] : Object | | Test.java:327:21:327:23 | out : MyAbstractKeyValue [] : Object | Test.java:243:20:243:50 | container : MyAbstractKeyValue [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:327:9:327:24 | getMapValue(...) | | Test.java:334:19:334:21 | out : DefaultKeyValue [] : Object | Test.java:237:18:237:48 | container : DefaultKeyValue [] : Object | Test.java:237:60:237:77 | getKey(...) : Object | Test.java:334:9:334:22 | getMapKey(...) | -| Test.java:340:17:340:18 | in : Object | Test.java:7047:14:7047:24 | key : Object | Test.java:7047:5:7047:12 | parameter this [Return] : MyAbstractKeyValue [] : Object | Test.java:340:4:340:6 | out [post update] : MyAbstractKeyValue [] : Object | +| Test.java:340:17:340:18 | in : Object | Test.java:7047:14:7047:24 | key : Object | Test.java:7047:5:7047:12 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | Test.java:340:4:340:6 | out [post update] : MyAbstractKeyValue [] : Object | | Test.java:341:19:341:21 | out : MyAbstractKeyValue [] : Object | Test.java:237:18:237:48 | container : MyAbstractKeyValue [] : Object | Test.java:237:60:237:77 | getKey(...) : Object | Test.java:341:9:341:22 | getMapKey(...) | | Test.java:346:42:346:57 | (...)... : String | Test.java:273:49:273:53 | key : String | Test.java:273:65:273:103 | new DefaultKeyValue(...) : DefaultKeyValue [] : String | Test.java:346:25:346:58 | newDKVWithMapKey(...) : DefaultKeyValue [] : String | | Test.java:353:46:353:61 | (...)... : String | Test.java:282:53:282:57 | key : String | Test.java:282:69:282:110 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | Test.java:353:28:353:62 | newMAKVWithMapKey(...) : MyAbstractKeyValue [] : String | @@ -17765,7 +17765,7 @@ subpaths | Test.java:362:21:362:23 | out : UnmodifiableMapEntry [] : Object | Test.java:243:20:243:50 | container : UnmodifiableMapEntry [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:362:9:362:24 | getMapValue(...) | | Test.java:369:21:369:23 | out : DefaultKeyValue [] : Object | Test.java:243:20:243:50 | container : DefaultKeyValue [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:369:9:369:24 | getMapValue(...) | | Test.java:376:21:376:23 | out : AbstractMapEntry [] : Object | Test.java:243:20:243:50 | container : AbstractMapEntry [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:376:9:376:24 | getMapValue(...) | -| Test.java:382:19:382:20 | in : Object | Test.java:7051:16:7051:28 | value : Object | Test.java:7051:5:7051:14 | parameter this [Return] : MyAbstractKeyValue [] : Object | Test.java:382:4:382:6 | out [post update] : MyAbstractKeyValue [] : Object | +| Test.java:382:19:382:20 | in : Object | Test.java:7051:16:7051:28 | value : Object | Test.java:7051:5:7051:14 | parameter this [Reverse] : MyAbstractKeyValue [] : Object | Test.java:382:4:382:6 | out [post update] : MyAbstractKeyValue [] : Object | | Test.java:383:21:383:23 | out : MyAbstractKeyValue [] : Object | Test.java:243:20:243:50 | container : MyAbstractKeyValue [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:383:9:383:24 | getMapValue(...) | | Test.java:388:49:388:64 | (...)... : String | Test.java:308:56:308:62 | value : String | Test.java:308:74:308:119 | new UnmodifiableMapEntry(...) : UnmodifiableMapEntry [] : String | Test.java:388:30:388:65 | newUMEWithMapValue(...) : UnmodifiableMapEntry [] : String | | Test.java:395:44:395:59 | (...)... : String | Test.java:291:51:291:57 | value : String | Test.java:291:69:291:109 | new DefaultKeyValue(...) : DefaultKeyValue [] : String | Test.java:395:25:395:60 | newDKVWithMapValue(...) : DefaultKeyValue [] : String | @@ -17775,15 +17775,15 @@ subpaths | Test.java:417:10:417:11 | in : MyAbstractKeyValue [] : String | Test.java:7051:5:7051:14 | parameter this : MyAbstractKeyValue [] : String | Test.java:7052:11:7052:31 | setValue(...) : String | Test.java:417:10:417:28 | mySetValue(...) : String | | Test.java:423:48:423:63 | (...)... : String | Test.java:299:55:299:61 | value : String | Test.java:299:73:299:116 | new MyAbstractKeyValue(...) : MyAbstractKeyValue [] : String | Test.java:423:28:423:64 | newMAKVWithMapValue(...) : MyAbstractKeyValue [] : String | | Test.java:424:10:424:11 | in : MyAbstractKeyValue [] : String | Test.java:7051:5:7051:14 | parameter this : MyAbstractKeyValue [] : String | Test.java:7052:11:7052:31 | setValue(...) : String | Test.java:424:10:424:36 | mySetValue(...) : String | -| Test.java:431:33:431:34 | in : Object | Test.java:7057:22:7057:32 | key : Object | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | Test.java:431:10:431:41 | new MyAbstractMapEntry<>(...) : MyAbstractMapEntry [] : Object | +| Test.java:431:33:431:34 | in : Object | Test.java:7057:22:7057:32 | key : Object | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | Test.java:431:10:431:41 | new MyAbstractMapEntry<>(...) : MyAbstractMapEntry [] : Object | | Test.java:432:19:432:21 | out : MyAbstractMapEntry [] : Object | Test.java:237:18:237:48 | container : MyAbstractMapEntry [] : Object | Test.java:237:60:237:77 | getKey(...) : Object | Test.java:432:9:432:22 | getMapKey(...) | -| Test.java:438:39:438:40 | in : Object | Test.java:7057:35:7057:47 | value : Object | Test.java:7057:3:7057:20 | parameter this [Return] : MyAbstractMapEntry [] : Object | Test.java:438:10:438:41 | new MyAbstractMapEntry<>(...) : MyAbstractMapEntry [] : Object | +| Test.java:438:39:438:40 | in : Object | Test.java:7057:35:7057:47 | value : Object | Test.java:7057:3:7057:20 | parameter this [Reverse] : MyAbstractMapEntry [] : Object | Test.java:438:10:438:41 | new MyAbstractMapEntry<>(...) : MyAbstractMapEntry [] : Object | | Test.java:439:21:439:23 | out : MyAbstractMapEntry [] : Object | Test.java:243:20:243:50 | container : MyAbstractMapEntry [] : Object | Test.java:243:62:243:81 | getValue(...) : Object | Test.java:439:9:439:24 | getMapValue(...) | | Test.java:444:52:444:67 | (...)... : String | Test.java:280:53:280:57 | key : String | Test.java:280:69:280:110 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | Test.java:444:34:444:68 | newMAMEWithMapKey(...) : MyAbstractMapEntry [] : String | -| Test.java:445:42:445:43 | in : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | Test.java:445:10:445:44 | new MyAbstractMapEntryDecorator<>(...) : MyAbstractMapEntryDecorator [] : String | +| Test.java:445:42:445:43 | in : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | Test.java:445:10:445:44 | new MyAbstractMapEntryDecorator<>(...) : MyAbstractMapEntryDecorator [] : String | | Test.java:446:19:446:21 | out : MyAbstractMapEntryDecorator [] : String | Test.java:239:18:239:57 | container : MyAbstractMapEntryDecorator [] : String | Test.java:239:69:239:86 | getKey(...) : String | Test.java:446:9:446:22 | getMapKey(...) | | Test.java:451:54:451:69 | (...)... : String | Test.java:300:55:300:61 | value : String | Test.java:300:73:300:116 | new MyAbstractMapEntry(...) : MyAbstractMapEntry [] : String | Test.java:451:34:451:70 | newMAMEWithMapValue(...) : MyAbstractMapEntry [] : String | -| Test.java:452:42:452:43 | in : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Return] : MyAbstractMapEntryDecorator [] : String | Test.java:452:10:452:44 | new MyAbstractMapEntryDecorator<>(...) : MyAbstractMapEntryDecorator [] : String | +| Test.java:452:42:452:43 | in : MyAbstractMapEntry [] : String | Test.java:7067:31:7067:57 | entry : MyAbstractMapEntry [] : String | Test.java:7067:3:7067:29 | parameter this [Reverse] : MyAbstractMapEntryDecorator [] : String | Test.java:452:10:452:44 | new MyAbstractMapEntryDecorator<>(...) : MyAbstractMapEntryDecorator [] : String | | Test.java:453:21:453:23 | out : MyAbstractMapEntryDecorator [] : String | Test.java:245:20:245:59 | container : MyAbstractMapEntryDecorator [] : String | Test.java:245:71:245:90 | getValue(...) : String | Test.java:453:9:453:24 | getMapValue(...) | | Test.java:458:56:458:71 | (...)... : String | Test.java:281:63:281:67 | key : String | Test.java:281:79:281:143 | new MyAbstractMapEntryDecorator(...) : MyAbstractMapEntryDecorator [] : String | Test.java:458:37:458:72 | newMAMEDWithMapKey(...) : MyAbstractMapEntryDecorator [] : String | | Test.java:459:10:459:11 | in : MyAbstractMapEntryDecorator [] : String | Test.java:7071:19:7071:31 | parameter this : MyAbstractMapEntryDecorator [] : String | Test.java:7072:11:7072:29 | getMapEntry(...) : Entry [] : String | Test.java:459:10:459:27 | myGetMapEntry(...) : Entry [] : String | @@ -18644,15 +18644,15 @@ subpaths | Test.java:3792:42:3792:57 | (...)... : String | Test.java:307:50:307:56 | value : String | Test.java:307:129:307:129 | m : PatriciaTrie [] : String | Test.java:3792:14:3792:58 | newPatriciaTrieWithMapValue(...) : PatriciaTrie [] : String | | Test.java:3794:21:3794:23 | out : Trie [] : String | Test.java:232:20:232:31 | map : Trie [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3794:9:3794:24 | getMapValue(...) | | Test.java:3799:35:3799:50 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:3799:13:3799:51 | newTreeBagWithElement(...) : TreeBag [] : String | -| Test.java:3800:37:3800:38 | in : TreeBag [] : String | Test.java:7104:33:7104:48 | bag : TreeBag [] : String | Test.java:7104:10:7104:31 | parameter this [Return] : MyAbstractBagDecorator [] : String | Test.java:3800:10:3800:39 | new MyAbstractBagDecorator<>(...) : MyAbstractBagDecorator [] : String | +| Test.java:3800:37:3800:38 | in : TreeBag [] : String | Test.java:7104:33:7104:48 | bag : TreeBag [] : String | Test.java:7104:10:7104:31 | parameter this [Reverse] : MyAbstractBagDecorator [] : String | Test.java:3800:10:3800:39 | new MyAbstractBagDecorator<>(...) : MyAbstractBagDecorator [] : String | | Test.java:3801:20:3801:22 | out : MyAbstractBagDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractBagDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:3801:9:3801:23 | getElement(...) | -| Test.java:3807:31:3807:32 | in : Map [] : String | Test.java:7110:27:7110:58 | map : Map [] : String | Test.java:7110:10:7110:25 | parameter this [Return] : MyAbstractMapBag [] : String | Test.java:3807:10:3807:33 | new MyAbstractMapBag<>(...) : MyAbstractMapBag [] : String | +| Test.java:3807:31:3807:32 | in : Map [] : String | Test.java:7110:27:7110:58 | map : Map [] : String | Test.java:7110:10:7110:25 | parameter this [Reverse] : MyAbstractMapBag [] : String | Test.java:3807:10:3807:33 | new MyAbstractMapBag<>(...) : MyAbstractMapBag [] : String | | Test.java:3808:20:3808:22 | out : MyAbstractMapBag [] : String | Test.java:230:19:230:32 | it : MyAbstractMapBag [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:3808:9:3808:23 | getElement(...) | -| Test.java:3813:47:3813:76 | of(...) : Map [] : String | Test.java:7110:27:7110:58 | map : Map [] : String | Test.java:7110:10:7110:25 | parameter this [Return] : MyAbstractMapBag [] : String | Test.java:3813:26:3813:77 | new MyAbstractMapBag<>(...) : MyAbstractMapBag [] : String | +| Test.java:3813:47:3813:76 | of(...) : Map [] : String | Test.java:7110:27:7110:58 | map : Map [] : String | Test.java:7110:10:7110:25 | parameter this [Reverse] : MyAbstractMapBag [] : String | Test.java:3813:26:3813:77 | new MyAbstractMapBag<>(...) : MyAbstractMapBag [] : String | | Test.java:3814:10:3814:11 | in : MyAbstractMapBag [] : String | Test.java:7113:33:7113:40 | parameter this : MyAbstractMapBag [] : String | Test.java:7114:11:7114:24 | getMap(...) : Map [] : String | Test.java:3814:10:3814:22 | myGetMap(...) : Map [] : String | | Test.java:3815:19:3815:21 | out : Map [] : String | Test.java:228:18:228:29 | map : Map [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3815:9:3815:22 | getMapKey(...) | | Test.java:3820:41:3820:56 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:3820:19:3820:57 | newTreeBagWithElement(...) : TreeBag [] : String | -| Test.java:3821:43:3821:44 | in : TreeBag [] : String | Test.java:7119:39:7119:60 | bag : TreeBag [] : String | Test.java:7119:10:7119:37 | parameter this [Return] : MyAbstractSortedBagDecorator [] : String | Test.java:3821:10:3821:45 | new MyAbstractSortedBagDecorator<>(...) : MyAbstractSortedBagDecorator [] : String | +| Test.java:3821:43:3821:44 | in : TreeBag [] : String | Test.java:7119:39:7119:60 | bag : TreeBag [] : String | Test.java:7119:10:7119:37 | parameter this [Reverse] : MyAbstractSortedBagDecorator [] : String | Test.java:3821:10:3821:45 | new MyAbstractSortedBagDecorator<>(...) : MyAbstractSortedBagDecorator [] : String | | Test.java:3822:20:3822:22 | out : MyAbstractSortedBagDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractSortedBagDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:3822:9:3822:23 | getElement(...) | | Test.java:3827:35:3827:50 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:3827:13:3827:51 | newTreeBagWithElement(...) : TreeBag [] : String | | Test.java:3829:20:3829:22 | out : CollectionBag [] : String | Test.java:230:19:230:32 | it : CollectionBag [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:3829:9:3829:23 | getElement(...) | @@ -18683,40 +18683,40 @@ subpaths | Test.java:3918:41:3918:56 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:3918:19:3918:57 | newTreeBagWithElement(...) : TreeBag [] : String | | Test.java:3920:20:3920:22 | out : SortedBag [] : String | Test.java:230:19:230:32 | it : SortedBag [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:3920:9:3920:23 | getElement(...) | | Test.java:3925:46:3925:61 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3925:17:3925:62 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3926:41:3926:42 | in : DualTreeBidiMap [] : String | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | Test.java:3926:10:3926:43 | new MyAbstractBidiMapDecorator<>(...) : MyAbstractBidiMapDecorator [] : String | +| Test.java:3926:41:3926:42 | in : DualTreeBidiMap [] : String | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | Test.java:3926:10:3926:43 | new MyAbstractBidiMapDecorator<>(...) : MyAbstractBidiMapDecorator [] : String | | Test.java:3927:19:3927:21 | out : MyAbstractBidiMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractBidiMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3927:9:3927:22 | getMapKey(...) | | Test.java:3932:48:3932:63 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3932:17:3932:64 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:3933:41:3933:42 | in : DualTreeBidiMap [] : String | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7125:10:7125:35 | parameter this [Return] : MyAbstractBidiMapDecorator [] : String | Test.java:3933:10:3933:43 | new MyAbstractBidiMapDecorator<>(...) : MyAbstractBidiMapDecorator [] : String | +| Test.java:3933:41:3933:42 | in : DualTreeBidiMap [] : String | Test.java:7125:37:7125:59 | map : DualTreeBidiMap [] : String | Test.java:7125:10:7125:35 | parameter this [Reverse] : MyAbstractBidiMapDecorator [] : String | Test.java:3933:10:3933:43 | new MyAbstractBidiMapDecorator<>(...) : MyAbstractBidiMapDecorator [] : String | | Test.java:3934:21:3934:23 | out : MyAbstractBidiMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractBidiMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3934:9:3934:24 | getMapValue(...) | | Test.java:3939:46:3939:61 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3939:17:3939:62 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3940:36:3940:37 | in : DualTreeBidiMap [] : String | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3940:10:3940:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3940:36:3940:37 | in : DualTreeBidiMap [] : String | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3940:10:3940:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3941:19:3941:21 | out : MyAbstractDualBidiMap [] : String | Test.java:228:18:228:29 | map : MyAbstractDualBidiMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3941:9:3941:22 | getMapKey(...) | | Test.java:3946:46:3946:61 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3946:17:3946:62 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3947:42:3947:43 | in : DualTreeBidiMap [] : String | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3947:10:3947:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3947:42:3947:43 | in : DualTreeBidiMap [] : String | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3947:10:3947:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3948:21:3948:23 | out : MyAbstractDualBidiMap [] : String | Test.java:232:20:232:31 | map : MyAbstractDualBidiMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3948:9:3948:24 | getMapValue(...) | | Test.java:3953:46:3953:61 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3953:17:3953:62 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3954:48:3954:49 | in : DualTreeBidiMap [] : String | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3954:10:3954:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3954:48:3954:49 | in : DualTreeBidiMap [] : String | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3954:10:3954:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3955:21:3955:23 | out : MyAbstractDualBidiMap [] : String | Test.java:232:20:232:31 | map : MyAbstractDualBidiMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3955:9:3955:24 | getMapValue(...) | | Test.java:3960:48:3960:63 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3960:17:3960:64 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:3961:36:3961:37 | in : DualTreeBidiMap [] : String | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3961:10:3961:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3961:36:3961:37 | in : DualTreeBidiMap [] : String | Test.java:7134:32:7134:56 | normalMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3961:10:3961:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3962:21:3962:23 | out : MyAbstractDualBidiMap [] : String | Test.java:232:20:232:31 | map : MyAbstractDualBidiMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3962:9:3962:24 | getMapValue(...) | | Test.java:3967:48:3967:63 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3967:17:3967:64 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:3968:42:3968:43 | in : DualTreeBidiMap [] : String | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3968:10:3968:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3968:42:3968:43 | in : DualTreeBidiMap [] : String | Test.java:7134:59:7134:84 | reverseMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3968:10:3968:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3969:19:3969:21 | out : MyAbstractDualBidiMap [] : String | Test.java:228:18:228:29 | map : MyAbstractDualBidiMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3969:9:3969:22 | getMapKey(...) | | Test.java:3974:48:3974:63 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3974:17:3974:64 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:3975:48:3975:49 | in : DualTreeBidiMap [] : String | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Return] : MyAbstractDualBidiMap [] : String | Test.java:3975:10:3975:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | +| Test.java:3975:48:3975:49 | in : DualTreeBidiMap [] : String | Test.java:7134:87:7134:120 | inverseBidiMap : DualTreeBidiMap [] : String | Test.java:7134:10:7134:30 | parameter this [Reverse] : MyAbstractDualBidiMap [] : String | Test.java:3975:10:3975:50 | new MyAbstractDualBidiMap<>(...) : MyAbstractDualBidiMap [] : String | | Test.java:3976:19:3976:21 | out : MyAbstractDualBidiMap [] : String | Test.java:228:18:228:29 | map : MyAbstractDualBidiMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3976:9:3976:22 | getMapKey(...) | | Test.java:3981:53:3981:68 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3981:24:3981:69 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3982:48:3982:49 | in : DualTreeBidiMap [] : String | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:3982:10:3982:50 | new MyAbstractOrderedBidiMapDecorator<>(...) : MyAbstractOrderedBidiMapDecorator [] : String | +| Test.java:3982:48:3982:49 | in : DualTreeBidiMap [] : String | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:3982:10:3982:50 | new MyAbstractOrderedBidiMapDecorator<>(...) : MyAbstractOrderedBidiMapDecorator [] : String | | Test.java:3983:19:3983:21 | out : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3983:9:3983:22 | getMapKey(...) | | Test.java:3988:55:3988:70 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3988:24:3988:71 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:3989:48:3989:49 | in : DualTreeBidiMap [] : String | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7143:10:7143:42 | parameter this [Return] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:3989:10:3989:50 | new MyAbstractOrderedBidiMapDecorator<>(...) : MyAbstractOrderedBidiMapDecorator [] : String | +| Test.java:3989:48:3989:49 | in : DualTreeBidiMap [] : String | Test.java:7143:44:7143:73 | map : DualTreeBidiMap [] : String | Test.java:7143:10:7143:42 | parameter this [Reverse] : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:3989:10:3989:50 | new MyAbstractOrderedBidiMapDecorator<>(...) : MyAbstractOrderedBidiMapDecorator [] : String | | Test.java:3990:21:3990:23 | out : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractOrderedBidiMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:3990:9:3990:24 | getMapValue(...) | | Test.java:3995:52:3995:67 | (...)... : String | Test.java:274:61:274:65 | key : String | Test.java:274:77:274:124 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:3995:23:3995:68 | newDualTreeBidiMapWithMapKey(...) : DualTreeBidiMap [] : String | -| Test.java:3996:47:3996:48 | in : DualTreeBidiMap [] : String | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:3996:10:3996:49 | new MyAbstractSortedBidiMapDecorator<>(...) : MyAbstractSortedBidiMapDecorator [] : String | +| Test.java:3996:47:3996:48 | in : DualTreeBidiMap [] : String | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:3996:10:3996:49 | new MyAbstractSortedBidiMapDecorator<>(...) : MyAbstractSortedBidiMapDecorator [] : String | | Test.java:3997:19:3997:21 | out : MyAbstractSortedBidiMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractSortedBidiMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:3997:9:3997:22 | getMapKey(...) | | Test.java:4002:54:4002:69 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:4002:23:4002:70 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | -| Test.java:4003:47:4003:48 | in : DualTreeBidiMap [] : String | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7086:10:7086:41 | parameter this [Return] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:4003:10:4003:49 | new MyAbstractSortedBidiMapDecorator<>(...) : MyAbstractSortedBidiMapDecorator [] : String | +| Test.java:4003:47:4003:48 | in : DualTreeBidiMap [] : String | Test.java:7086:43:7086:71 | map : DualTreeBidiMap [] : String | Test.java:7086:10:7086:41 | parameter this [Reverse] : MyAbstractSortedBidiMapDecorator [] : String | Test.java:4003:10:4003:49 | new MyAbstractSortedBidiMapDecorator<>(...) : MyAbstractSortedBidiMapDecorator [] : String | | Test.java:4004:21:4004:23 | out : MyAbstractSortedBidiMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractSortedBidiMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:4004:9:4004:24 | getMapValue(...) | | Test.java:4011:19:4011:21 | out : DualHashBidiMap [] : String | Test.java:228:18:228:29 | map : DualHashBidiMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:4011:9:4011:22 | getMapKey(...) | | Test.java:4018:21:4018:23 | out : DualHashBidiMap [] : String | Test.java:232:20:232:31 | map : DualHashBidiMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:4018:9:4018:24 | getMapValue(...) | @@ -18751,14 +18751,14 @@ subpaths | Test.java:4142:54:4142:69 | (...)... : String | Test.java:292:63:292:69 | value : String | Test.java:292:81:292:130 | new DualTreeBidiMap(...) : DualTreeBidiMap [] : String | Test.java:4142:23:4142:70 | newDualTreeBidiMapWithMapValue(...) : DualTreeBidiMap [] : String | | Test.java:4144:21:4144:23 | out : SortedBidiMap [] : String | Test.java:232:20:232:31 | map : SortedBidiMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:4144:9:4144:24 | getMapValue(...) | | Test.java:4149:42:4149:57 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:4149:20:4149:58 | newTreeBagWithElement(...) : TreeBag [] : String | -| Test.java:4150:44:4150:45 | in : TreeBag [] : String | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | Test.java:7149:10:7149:38 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | Test.java:4150:10:4150:46 | new MyAbstractCollectionDecorator<>(...) : MyAbstractCollectionDecorator [] : String | +| Test.java:4150:44:4150:45 | in : TreeBag [] : String | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | Test.java:7149:10:7149:38 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | Test.java:4150:10:4150:46 | new MyAbstractCollectionDecorator<>(...) : MyAbstractCollectionDecorator [] : String | | Test.java:4151:20:4151:22 | out : MyAbstractCollectionDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractCollectionDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:4151:9:4151:23 | getElement(...) | -| Test.java:4156:73:4156:111 | newTreeBagWithElement(...) : TreeBag [] : String | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | Test.java:7149:10:7149:38 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | Test.java:4156:39:4156:112 | new MyAbstractCollectionDecorator<>(...) : MyAbstractCollectionDecorator [] : String | +| Test.java:4156:73:4156:111 | newTreeBagWithElement(...) : TreeBag [] : String | Test.java:7149:40:7149:63 | coll : TreeBag [] : String | Test.java:7149:10:7149:38 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | Test.java:4156:39:4156:112 | new MyAbstractCollectionDecorator<>(...) : MyAbstractCollectionDecorator [] : String | | Test.java:4156:95:4156:110 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:4156:73:4156:111 | newTreeBagWithElement(...) : TreeBag [] : String | | Test.java:4157:10:4157:11 | in : MyAbstractCollectionDecorator [] : String | Test.java:7152:24:7152:34 | parameter this : MyAbstractCollectionDecorator [] : String | Test.java:7153:11:7153:27 | decorated(...) : Collection [] : String | Test.java:4157:10:4157:25 | myDecorated(...) : Collection [] : String | | Test.java:4158:20:4158:22 | out : Collection [] : String | Test.java:230:19:230:32 | it : Collection [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:4158:9:4158:23 | getElement(...) | | Test.java:4163:42:4163:57 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:4163:20:4163:58 | newTreeBagWithElement(...) : TreeBag [] : String | -| Test.java:4164:24:4164:25 | in : TreeBag [] : String | Test.java:7155:31:7155:54 | coll : TreeBag [] : String | Test.java:7155:15:7155:29 | parameter this [Return] : MyAbstractCollectionDecorator [] : String | Test.java:4164:4:4164:6 | out [post update] : MyAbstractCollectionDecorator [] : String | +| Test.java:4164:24:4164:25 | in : TreeBag [] : String | Test.java:7155:31:7155:54 | coll : TreeBag [] : String | Test.java:7155:15:7155:29 | parameter this [Reverse] : MyAbstractCollectionDecorator [] : String | Test.java:4164:4:4164:6 | out [post update] : MyAbstractCollectionDecorator [] : String | | Test.java:4165:20:4165:22 | out : MyAbstractCollectionDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractCollectionDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:4165:9:4165:23 | getElement(...) | | Test.java:4173:20:4173:22 | out : CompositeCollection [] : Object | Test.java:230:19:230:32 | it : CompositeCollection [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:4173:9:4173:23 | getElement(...) | | Test.java:4181:20:4181:34 | getElement(...) : Collection [] : Object | Test.java:230:19:230:32 | it : Collection [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:4181:9:4181:35 | getElement(...) | @@ -18844,47 +18844,47 @@ subpaths | Test.java:4473:42:4473:57 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:4473:20:4473:58 | newTreeBagWithElement(...) : TreeBag [] : String | | Test.java:4475:20:4475:22 | out : Collection [] : String | Test.java:230:19:230:32 | it : Collection [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:4475:9:4475:23 | getElement(...) | | Test.java:4480:45:4480:60 | (...)... : String | Test.java:259:49:259:57 | element : String | Test.java:259:69:259:112 | listIterator(...) : ListIterator [] : String | Test.java:4480:18:4480:61 | newListIteratorWithElement(...) : ListIterator [] : String | -| Test.java:4481:42:4481:43 | in : ListIterator [] : String | Test.java:7161:38:7161:63 | iterator : ListIterator [] : String | Test.java:7161:10:7161:36 | parameter this [Return] : MyAbstractIteratorDecorator [] : String | Test.java:4481:10:4481:44 | new MyAbstractIteratorDecorator<>(...) : MyAbstractIteratorDecorator [] : String | +| Test.java:4481:42:4481:43 | in : ListIterator [] : String | Test.java:7161:38:7161:63 | iterator : ListIterator [] : String | Test.java:7161:10:7161:36 | parameter this [Reverse] : MyAbstractIteratorDecorator [] : String | Test.java:4481:10:4481:44 | new MyAbstractIteratorDecorator<>(...) : MyAbstractIteratorDecorator [] : String | | Test.java:4482:20:4482:22 | out : MyAbstractIteratorDecorator [] : String | Test.java:231:19:231:32 | it : MyAbstractIteratorDecorator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4482:9:4482:23 | getElement(...) | | Test.java:4487:49:4487:64 | (...)... : String | Test.java:259:49:259:57 | element : String | Test.java:259:69:259:112 | listIterator(...) : ListIterator [] : String | Test.java:4487:22:4487:65 | newListIteratorWithElement(...) : ListIterator [] : String | -| Test.java:4488:46:4488:47 | in : ListIterator [] : String | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | Test.java:7167:10:7167:40 | parameter this [Return] : MyAbstractListIteratorDecorator [] : String | Test.java:4488:10:4488:48 | new MyAbstractListIteratorDecorator<>(...) : MyAbstractListIteratorDecorator [] : String | +| Test.java:4488:46:4488:47 | in : ListIterator [] : String | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | Test.java:7167:10:7167:40 | parameter this [Reverse] : MyAbstractListIteratorDecorator [] : String | Test.java:4488:10:4488:48 | new MyAbstractListIteratorDecorator<>(...) : MyAbstractListIteratorDecorator [] : String | | Test.java:4489:20:4489:22 | out : MyAbstractListIteratorDecorator [] : String | Test.java:231:19:231:32 | it : MyAbstractListIteratorDecorator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4489:9:4489:23 | getElement(...) | -| Test.java:4494:77:4494:120 | newListIteratorWithElement(...) : ListIterator [] : String | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | Test.java:7167:10:7167:40 | parameter this [Return] : MyAbstractListIteratorDecorator [] : String | Test.java:4494:41:4494:121 | new MyAbstractListIteratorDecorator<>(...) : MyAbstractListIteratorDecorator [] : String | +| Test.java:4494:77:4494:120 | newListIteratorWithElement(...) : ListIterator [] : String | Test.java:7167:42:7167:71 | iterator : ListIterator [] : String | Test.java:7167:10:7167:40 | parameter this [Reverse] : MyAbstractListIteratorDecorator [] : String | Test.java:4494:41:4494:121 | new MyAbstractListIteratorDecorator<>(...) : MyAbstractListIteratorDecorator [] : String | | Test.java:4494:104:4494:119 | (...)... : String | Test.java:259:49:259:57 | element : String | Test.java:259:69:259:112 | listIterator(...) : ListIterator [] : String | Test.java:4494:77:4494:120 | newListIteratorWithElement(...) : ListIterator [] : String | | Test.java:4495:10:4495:11 | in : MyAbstractListIteratorDecorator [] : String | Test.java:7170:26:7170:42 | parameter this : MyAbstractListIteratorDecorator [] : String | Test.java:7171:11:7171:33 | getListIterator(...) : ListIterator [] : String | Test.java:4495:10:4495:31 | myGetListIterator(...) : ListIterator [] : String | | Test.java:4496:20:4496:22 | out : ListIterator [] : String | Test.java:231:19:231:32 | it : ListIterator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4496:9:4496:23 | getElement(...) | | Test.java:4501:44:4501:59 | (...)... : String | Test.java:276:49:276:53 | key : String | Test.java:276:65:276:106 | new LinkedMap(...) : LinkedMap [] : String | Test.java:4501:21:4501:60 | newLinkedMapWithMapKey(...) : LinkedMap [] : String | -| Test.java:4502:45:4502:46 | in : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | Test.java:4502:10:4502:47 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | +| Test.java:4502:45:4502:46 | in : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | Test.java:4502:10:4502:47 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | | Test.java:4503:20:4503:22 | out : MyAbstractMapIteratorDecorator [] : String | Test.java:231:19:231:32 | it : MyAbstractMapIteratorDecorator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4503:9:4503:23 | getElement(...) | | Test.java:4508:46:4508:61 | (...)... : String | Test.java:295:51:295:57 | value : String | Test.java:295:69:295:112 | new LinkedMap(...) : LinkedMap [] : String | Test.java:4508:21:4508:62 | newLinkedMapWithMapValue(...) : LinkedMap [] : String | -| Test.java:4509:45:4509:46 | in : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | Test.java:4509:10:4509:47 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | +| Test.java:4509:45:4509:46 | in : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | Test.java:4509:10:4509:47 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | | Test.java:4510:21:4510:23 | out : MyAbstractMapIteratorDecorator [] : String | Test.java:246:20:246:47 | mapIterator : MyAbstractMapIteratorDecorator [] : String | Test.java:246:59:246:80 | getValue(...) : String | Test.java:4510:9:4510:24 | getMapValue(...) | -| Test.java:4515:75:4515:128 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | Test.java:4515:40:4515:129 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | +| Test.java:4515:75:4515:128 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | Test.java:4515:40:4515:129 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | | Test.java:4515:98:4515:113 | (...)... : String | Test.java:276:49:276:53 | key : String | Test.java:276:65:276:106 | new LinkedMap(...) : LinkedMap [] : String | Test.java:4515:75:4515:114 | newLinkedMapWithMapKey(...) : LinkedMap [] : String | | Test.java:4516:10:4516:11 | in : MyAbstractMapIteratorDecorator [] : String | Test.java:7179:28:7179:43 | parameter this : MyAbstractMapIteratorDecorator [] : String | Test.java:7180:11:7180:32 | getMapIterator(...) : MapIterator [] : String | Test.java:4516:10:4516:30 | myGetMapIterator(...) : MapIterator [] : String | | Test.java:4517:20:4517:22 | out : MapIterator [] : String | Test.java:231:19:231:32 | it : MapIterator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4517:9:4517:23 | getElement(...) | -| Test.java:4522:75:4522:130 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Return] : MyAbstractMapIteratorDecorator [] : String | Test.java:4522:40:4522:131 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | +| Test.java:4522:75:4522:130 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7176:41:7176:72 | iterator : OrderedMapIterator [] : String | Test.java:7176:10:7176:39 | parameter this [Reverse] : MyAbstractMapIteratorDecorator [] : String | Test.java:4522:40:4522:131 | new MyAbstractMapIteratorDecorator<>(...) : MyAbstractMapIteratorDecorator [] : String | | Test.java:4522:100:4522:115 | (...)... : String | Test.java:295:51:295:57 | value : String | Test.java:295:69:295:112 | new LinkedMap(...) : LinkedMap [] : String | Test.java:4522:75:4522:116 | newLinkedMapWithMapValue(...) : LinkedMap [] : String | | Test.java:4523:10:4523:11 | in : MyAbstractMapIteratorDecorator [] : String | Test.java:7179:28:7179:43 | parameter this : MyAbstractMapIteratorDecorator [] : String | Test.java:7180:11:7180:32 | getMapIterator(...) : MapIterator [] : String | Test.java:4523:10:4523:30 | myGetMapIterator(...) : MapIterator [] : String | | Test.java:4524:21:4524:23 | out : MapIterator [] : String | Test.java:246:20:246:47 | mapIterator : MapIterator [] : String | Test.java:246:59:246:80 | getValue(...) : String | Test.java:4524:9:4524:24 | getMapValue(...) | | Test.java:4529:56:4529:71 | (...)... : String | Test.java:277:59:277:63 | key : String | Test.java:277:75:277:132 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:4529:28:4529:72 | newListOrderedMapWithMapKey(...) : ListOrderedMap [] : String | -| Test.java:4530:52:4530:53 | in : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4530:10:4530:54 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:4530:52:4530:53 | in : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4530:10:4530:54 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:4531:20:4531:22 | out : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:231:19:231:32 | it : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4531:9:4531:23 | getElement(...) | | Test.java:4536:58:4536:73 | (...)... : String | Test.java:296:61:296:67 | value : String | Test.java:296:79:296:138 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:4536:28:4536:74 | newListOrderedMapWithMapValue(...) : ListOrderedMap [] : String | -| Test.java:4537:52:4537:53 | in : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4537:10:4537:54 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:4537:52:4537:53 | in : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4537:10:4537:54 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:4538:21:4538:23 | out : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:246:20:246:47 | mapIterator : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:246:59:246:80 | getValue(...) : String | Test.java:4538:9:4538:24 | getMapValue(...) | -| Test.java:4543:89:4543:147 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4543:47:4543:148 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:4543:89:4543:147 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4543:47:4543:148 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:4543:117:4543:132 | (...)... : String | Test.java:277:59:277:63 | key : String | Test.java:277:75:277:132 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:4543:89:4543:133 | newListOrderedMapWithMapKey(...) : ListOrderedMap [] : String | | Test.java:4544:10:4544:11 | in : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7188:35:7188:57 | parameter this : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | Test.java:4544:10:4544:37 | myGetOrderedMapIterator(...) : OrderedMapIterator [] : String | | Test.java:4545:20:4545:22 | out : OrderedMapIterator [] : String | Test.java:231:19:231:32 | it : OrderedMapIterator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4545:9:4545:23 | getElement(...) | -| Test.java:4550:89:4550:149 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Return] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4550:47:4550:150 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | +| Test.java:4550:89:4550:149 | mapIterator(...) : OrderedMapIterator [] : String | Test.java:7185:48:7185:86 | iterator : OrderedMapIterator [] : String | Test.java:7185:10:7185:46 | parameter this [Reverse] : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:4550:47:4550:150 | new MyAbstractOrderedMapIteratorDecorator<>(...) : MyAbstractOrderedMapIteratorDecorator [] : String | | Test.java:4550:119:4550:134 | (...)... : String | Test.java:296:61:296:67 | value : String | Test.java:296:79:296:138 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:4550:89:4550:135 | newListOrderedMapWithMapValue(...) : ListOrderedMap [] : String | | Test.java:4551:10:4551:11 | in : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7188:35:7188:57 | parameter this : MyAbstractOrderedMapIteratorDecorator [] : String | Test.java:7189:11:7189:39 | getOrderedMapIterator(...) : OrderedMapIterator [] : String | Test.java:4551:10:4551:37 | myGetOrderedMapIterator(...) : OrderedMapIterator [] : String | | Test.java:4552:21:4552:23 | out : OrderedMapIterator [] : String | Test.java:246:20:246:47 | mapIterator : OrderedMapIterator [] : String | Test.java:246:59:246:80 | getValue(...) : String | Test.java:4552:9:4552:24 | getMapValue(...) | | Test.java:4557:45:4557:60 | (...)... : String | Test.java:259:49:259:57 | element : String | Test.java:259:69:259:112 | listIterator(...) : ListIterator [] : String | Test.java:4557:18:4557:61 | newListIteratorWithElement(...) : ListIterator [] : String | -| Test.java:4558:49:4558:50 | in : ListIterator [] : String | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | Test.java:7194:10:7194:43 | parameter this [Return] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:4558:10:4558:51 | new MyAbstractUntypedIteratorDecorator<>(...) : MyAbstractUntypedIteratorDecorator [] : String | +| Test.java:4558:49:4558:50 | in : ListIterator [] : String | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | Test.java:7194:10:7194:43 | parameter this [Reverse] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:4558:10:4558:51 | new MyAbstractUntypedIteratorDecorator<>(...) : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:4559:20:4559:22 | out : MyAbstractUntypedIteratorDecorator [] : String | Test.java:231:19:231:32 | it : MyAbstractUntypedIteratorDecorator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4559:9:4559:23 | getElement(...) | -| Test.java:4564:83:4564:126 | newListIteratorWithElement(...) : ListIterator [] : String | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | Test.java:7194:10:7194:43 | parameter this [Return] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:4564:44:4564:127 | new MyAbstractUntypedIteratorDecorator<>(...) : MyAbstractUntypedIteratorDecorator [] : String | +| Test.java:4564:83:4564:126 | newListIteratorWithElement(...) : ListIterator [] : String | Test.java:7194:45:7194:70 | iterator : ListIterator [] : String | Test.java:7194:10:7194:43 | parameter this [Reverse] : MyAbstractUntypedIteratorDecorator [] : String | Test.java:4564:44:4564:127 | new MyAbstractUntypedIteratorDecorator<>(...) : MyAbstractUntypedIteratorDecorator [] : String | | Test.java:4564:110:4564:125 | (...)... : String | Test.java:259:49:259:57 | element : String | Test.java:259:69:259:112 | listIterator(...) : ListIterator [] : String | Test.java:4564:83:4564:126 | newListIteratorWithElement(...) : ListIterator [] : String | | Test.java:4565:10:4565:11 | in : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7197:22:7197:34 | parameter this : MyAbstractUntypedIteratorDecorator [] : String | Test.java:7198:11:7198:29 | getIterator(...) : Iterator [] : String | Test.java:4565:10:4565:27 | myGetIterator(...) : Iterator [] : String | | Test.java:4566:20:4566:22 | out : Iterator [] : String | Test.java:231:19:231:32 | it : Iterator [] : String | Test.java:231:44:231:52 | next(...) : String | Test.java:4566:9:4566:23 | getElement(...) | @@ -19043,7 +19043,7 @@ subpaths | Test.java:5208:41:5208:56 | (...)... : String | Test.java:261:41:261:49 | element : String | Test.java:261:61:261:93 | new MultiKey(...) : MultiKey [] : String | Test.java:5208:18:5208:57 | newMultiKeyWithElement(...) : MultiKey [] : String | | Test.java:5210:25:5210:27 | out : Object[] [[]] : String | Test.java:229:24:229:32 | array : Object[] [[]] : String | Test.java:229:44:229:51 | ...[...] : String | Test.java:5210:9:5210:28 | getArrayElement(...) | | Test.java:5215:42:5215:57 | (...)... : String | Test.java:267:39:267:47 | element : String | Test.java:267:107:267:107 | b : TreeBag [] : String | Test.java:5215:20:5215:58 | newTreeBagWithElement(...) : TreeBag [] : String | -| Test.java:5216:35:5216:36 | in : TreeBag [] : String | Test.java:7204:31:7204:64 | coll : TreeBag [] : String | Test.java:7204:10:7204:29 | parameter this [Return] : MyAbstractLinkedList [] : String | Test.java:5216:10:5216:37 | new MyAbstractLinkedList<>(...) : MyAbstractLinkedList [] : String | +| Test.java:5216:35:5216:36 | in : TreeBag [] : String | Test.java:7204:31:7204:64 | coll : TreeBag [] : String | Test.java:7204:10:7204:29 | parameter this [Reverse] : MyAbstractLinkedList [] : String | Test.java:5216:10:5216:37 | new MyAbstractLinkedList<>(...) : MyAbstractLinkedList [] : String | | Test.java:5217:20:5217:22 | out : MyAbstractLinkedList [] : String | Test.java:230:19:230:32 | it : MyAbstractLinkedList [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5217:9:5217:23 | getElement(...) | | Test.java:5224:20:5224:22 | out : AbstractLinkedList [] : Object | Test.java:230:19:230:32 | it : AbstractLinkedList [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:5224:9:5224:23 | getElement(...) | | Test.java:5231:20:5231:22 | out : AbstractLinkedList [] : Object | Test.java:230:19:230:32 | it : AbstractLinkedList [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:5231:9:5231:23 | getElement(...) | @@ -19051,9 +19051,9 @@ subpaths | Test.java:5243:63:5243:78 | (...)... : String | Test.java:255:65:255:73 | element : String | Test.java:255:159:255:159 | x : CursorableLinkedList [] : String | Test.java:5243:28:5243:79 | newCursorableLinkedListWithElement(...) : CursorableLinkedList [] : String | | Test.java:5250:63:5250:78 | (...)... : String | Test.java:255:65:255:73 | element : String | Test.java:255:159:255:159 | x : CursorableLinkedList [] : String | Test.java:5250:28:5250:79 | newCursorableLinkedListWithElement(...) : CursorableLinkedList [] : String | | Test.java:5257:63:5257:78 | (...)... : String | Test.java:255:65:255:73 | element : String | Test.java:255:159:255:159 | x : CursorableLinkedList [] : String | Test.java:5257:28:5257:79 | newCursorableLinkedListWithElement(...) : CursorableLinkedList [] : String | -| Test.java:5265:38:5265:39 | in : List [] : String | Test.java:7210:34:7210:51 | list : List [] : String | Test.java:7210:10:7210:32 | parameter this [Return] : MyAbstractListDecorator [] : String | Test.java:5265:10:5265:40 | new MyAbstractListDecorator<>(...) : MyAbstractListDecorator [] : String | +| Test.java:5265:38:5265:39 | in : List [] : String | Test.java:7210:34:7210:51 | list : List [] : String | Test.java:7210:10:7210:32 | parameter this [Reverse] : MyAbstractListDecorator [] : String | Test.java:5265:10:5265:40 | new MyAbstractListDecorator<>(...) : MyAbstractListDecorator [] : String | | Test.java:5266:20:5266:22 | out : MyAbstractListDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractListDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5266:9:5266:23 | getElement(...) | -| Test.java:5272:50:5272:51 | in : List [] : String | Test.java:7216:46:7216:63 | list : List [] : String | Test.java:7216:10:7216:44 | parameter this [Return] : MyAbstractSerializableListDecorator [] : String | Test.java:5272:10:5272:52 | new MyAbstractSerializableListDecorator<>(...) : MyAbstractSerializableListDecorator [] : String | +| Test.java:5272:50:5272:51 | in : List [] : String | Test.java:7216:46:7216:63 | list : List [] : String | Test.java:7216:10:7216:44 | parameter this [Reverse] : MyAbstractSerializableListDecorator [] : String | Test.java:5272:10:5272:52 | new MyAbstractSerializableListDecorator<>(...) : MyAbstractSerializableListDecorator [] : String | | Test.java:5273:20:5273:22 | out : MyAbstractSerializableListDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractSerializableListDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5273:9:5273:23 | getElement(...) | | Test.java:5280:20:5280:22 | out : CursorableLinkedList [] : String | Test.java:230:19:230:32 | it : CursorableLinkedList [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5280:9:5280:23 | getElement(...) | | Test.java:5285:65:5285:80 | (...)... : String | Test.java:255:65:255:73 | element : String | Test.java:255:159:255:159 | x : CursorableLinkedList [] : String | Test.java:5285:30:5285:81 | newCursorableLinkedListWithElement(...) : CursorableLinkedList [] : String | @@ -19072,35 +19072,35 @@ subpaths | Test.java:5364:20:5364:22 | out : TreeList [] : String | Test.java:230:19:230:32 | it : TreeList [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5364:9:5364:23 | getElement(...) | | Test.java:5371:20:5371:22 | out : UnmodifiableList [] : String | Test.java:230:19:230:32 | it : UnmodifiableList [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5371:9:5371:23 | getElement(...) | | Test.java:5378:20:5378:22 | out : List [] : String | Test.java:230:19:230:32 | it : List [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:5378:9:5378:23 | getElement(...) | -| Test.java:5384:34:5384:35 | in : Map [] : String | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | Test.java:5384:10:5384:36 | new MyAbstractHashedMap<>(...) : MyAbstractHashedMap [] : String | +| Test.java:5384:34:5384:35 | in : Map [] : String | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | Test.java:5384:10:5384:36 | new MyAbstractHashedMap<>(...) : MyAbstractHashedMap [] : String | | Test.java:5385:19:5385:21 | out : MyAbstractHashedMap [] : String | Test.java:228:18:228:29 | map : MyAbstractHashedMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5385:9:5385:22 | getMapKey(...) | -| Test.java:5391:34:5391:35 | in : Map [] : String | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7222:10:7222:28 | parameter this [Return] : MyAbstractHashedMap [] : String | Test.java:5391:10:5391:36 | new MyAbstractHashedMap<>(...) : MyAbstractHashedMap [] : String | +| Test.java:5391:34:5391:35 | in : Map [] : String | Test.java:7222:30:7222:68 | map : Map [] : String | Test.java:7222:10:7222:28 | parameter this [Reverse] : MyAbstractHashedMap [] : String | Test.java:5391:10:5391:36 | new MyAbstractHashedMap<>(...) : MyAbstractHashedMap [] : String | | Test.java:5392:21:5392:23 | out : MyAbstractHashedMap [] : String | Test.java:232:20:232:31 | map : MyAbstractHashedMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5392:9:5392:24 | getMapValue(...) | -| Test.java:5398:34:5398:35 | in : Map [] : String | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | Test.java:5398:10:5398:36 | new MyAbstractLinkedMap<>(...) : MyAbstractLinkedMap [] : String | +| Test.java:5398:34:5398:35 | in : Map [] : String | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | Test.java:5398:10:5398:36 | new MyAbstractLinkedMap<>(...) : MyAbstractLinkedMap [] : String | | Test.java:5399:19:5399:21 | out : MyAbstractLinkedMap [] : String | Test.java:228:18:228:29 | map : MyAbstractLinkedMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5399:9:5399:22 | getMapKey(...) | -| Test.java:5405:34:5405:35 | in : Map [] : String | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7228:10:7228:28 | parameter this [Return] : MyAbstractLinkedMap [] : String | Test.java:5405:10:5405:36 | new MyAbstractLinkedMap<>(...) : MyAbstractLinkedMap [] : String | +| Test.java:5405:34:5405:35 | in : Map [] : String | Test.java:7228:30:7228:68 | map : Map [] : String | Test.java:7228:10:7228:28 | parameter this [Reverse] : MyAbstractLinkedMap [] : String | Test.java:5405:10:5405:36 | new MyAbstractLinkedMap<>(...) : MyAbstractLinkedMap [] : String | | Test.java:5406:21:5406:23 | out : MyAbstractLinkedMap [] : String | Test.java:232:20:232:31 | map : MyAbstractLinkedMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5406:9:5406:24 | getMapValue(...) | -| Test.java:5412:37:5412:38 | in : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | Test.java:5412:10:5412:39 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | +| Test.java:5412:37:5412:38 | in : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | Test.java:5412:10:5412:39 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | | Test.java:5413:19:5413:21 | out : MyAbstractMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5413:9:5413:22 | getMapKey(...) | -| Test.java:5419:37:5419:38 | in : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | Test.java:5419:10:5419:39 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | +| Test.java:5419:37:5419:38 | in : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | Test.java:5419:10:5419:39 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | | Test.java:5420:21:5420:23 | out : MyAbstractMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5420:9:5420:24 | getMapValue(...) | -| Test.java:5425:59:5425:88 | of(...) : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | Test.java:5425:32:5425:89 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | +| Test.java:5425:59:5425:88 | of(...) : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | Test.java:5425:32:5425:89 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | | Test.java:5426:10:5426:11 | in : MyAbstractMapDecorator [] : String | Test.java:7237:20:7237:30 | parameter this : MyAbstractMapDecorator [] : String | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | Test.java:5426:10:5426:25 | myDecorated(...) : Map [] : String | | Test.java:5427:19:5427:21 | out : Map [] : String | Test.java:228:18:228:29 | map : Map [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5427:9:5427:22 | getMapKey(...) | -| Test.java:5432:59:5432:88 | of(...) : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Return] : MyAbstractMapDecorator [] : String | Test.java:5432:32:5432:89 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | +| Test.java:5432:59:5432:88 | of(...) : Map [] : String | Test.java:7234:33:7234:51 | map : Map [] : String | Test.java:7234:10:7234:31 | parameter this [Reverse] : MyAbstractMapDecorator [] : String | Test.java:5432:32:5432:89 | new MyAbstractMapDecorator<>(...) : MyAbstractMapDecorator [] : String | | Test.java:5433:10:5433:11 | in : MyAbstractMapDecorator [] : String | Test.java:7237:20:7237:30 | parameter this : MyAbstractMapDecorator [] : String | Test.java:7238:11:7238:27 | decorated(...) : Map [] : String | Test.java:5433:10:5433:25 | myDecorated(...) : Map [] : String | | Test.java:5434:21:5434:23 | out : Map [] : String | Test.java:232:20:232:31 | map : Map [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5434:9:5434:24 | getMapValue(...) | | Test.java:5439:48:5439:63 | (...)... : String | Test.java:277:59:277:63 | key : String | Test.java:277:75:277:132 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:5439:20:5439:64 | newListOrderedMapWithMapKey(...) : ListOrderedMap [] : String | -| Test.java:5440:44:5440:45 | in : ListOrderedMap [] : String | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | Test.java:5440:10:5440:46 | new MyAbstractOrderedMapDecorator<>(...) : MyAbstractOrderedMapDecorator [] : String | +| Test.java:5440:44:5440:45 | in : ListOrderedMap [] : String | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | Test.java:5440:10:5440:46 | new MyAbstractOrderedMapDecorator<>(...) : MyAbstractOrderedMapDecorator [] : String | | Test.java:5441:19:5441:21 | out : MyAbstractOrderedMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractOrderedMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5441:9:5441:22 | getMapKey(...) | | Test.java:5446:50:5446:65 | (...)... : String | Test.java:296:61:296:67 | value : String | Test.java:296:79:296:138 | listOrderedMap(...) : ListOrderedMap [] : String | Test.java:5446:20:5446:66 | newListOrderedMapWithMapValue(...) : ListOrderedMap [] : String | -| Test.java:5447:44:5447:45 | in : ListOrderedMap [] : String | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7092:10:7092:38 | parameter this [Return] : MyAbstractOrderedMapDecorator [] : String | Test.java:5447:10:5447:46 | new MyAbstractOrderedMapDecorator<>(...) : MyAbstractOrderedMapDecorator [] : String | +| Test.java:5447:44:5447:45 | in : ListOrderedMap [] : String | Test.java:7092:40:7092:65 | map : ListOrderedMap [] : String | Test.java:7092:10:7092:38 | parameter this [Reverse] : MyAbstractOrderedMapDecorator [] : String | Test.java:5447:10:5447:46 | new MyAbstractOrderedMapDecorator<>(...) : MyAbstractOrderedMapDecorator [] : String | | Test.java:5448:21:5448:23 | out : MyAbstractOrderedMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractOrderedMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5448:9:5448:24 | getMapValue(...) | | Test.java:5453:40:5453:55 | (...)... : String | Test.java:285:47:285:51 | key : String | Test.java:285:121:285:121 | m : TreeMap [] : String | Test.java:5453:19:5453:56 | newTreeMapWithMapKey(...) : TreeMap [] : String | -| Test.java:5454:43:5454:44 | in : TreeMap [] : String | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | Test.java:5454:10:5454:45 | new MyAbstractSortedMapDecorator<>(...) : MyAbstractSortedMapDecorator [] : String | +| Test.java:5454:43:5454:44 | in : TreeMap [] : String | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | Test.java:5454:10:5454:45 | new MyAbstractSortedMapDecorator<>(...) : MyAbstractSortedMapDecorator [] : String | | Test.java:5455:19:5455:21 | out : MyAbstractSortedMapDecorator [] : String | Test.java:228:18:228:29 | map : MyAbstractSortedMapDecorator [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5455:9:5455:22 | getMapKey(...) | | Test.java:5460:42:5460:57 | (...)... : String | Test.java:304:49:304:55 | value : String | Test.java:304:127:304:127 | m : TreeMap [] : String | Test.java:5460:19:5460:58 | newTreeMapWithMapValue(...) : TreeMap [] : String | -| Test.java:5461:43:5461:44 | in : TreeMap [] : String | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7098:10:7098:37 | parameter this [Return] : MyAbstractSortedMapDecorator [] : String | Test.java:5461:10:5461:45 | new MyAbstractSortedMapDecorator<>(...) : MyAbstractSortedMapDecorator [] : String | +| Test.java:5461:43:5461:44 | in : TreeMap [] : String | Test.java:7098:39:7098:63 | map : TreeMap [] : String | Test.java:7098:10:7098:37 | parameter this [Reverse] : MyAbstractSortedMapDecorator [] : String | Test.java:5461:10:5461:45 | new MyAbstractSortedMapDecorator<>(...) : MyAbstractSortedMapDecorator [] : String | | Test.java:5462:21:5462:23 | out : MyAbstractSortedMapDecorator [] : String | Test.java:232:20:232:31 | map : MyAbstractSortedMapDecorator [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5462:9:5462:24 | getMapValue(...) | | Test.java:5469:19:5469:21 | out : CaseInsensitiveMap [] : String | Test.java:228:18:228:29 | map : CaseInsensitiveMap [] : String | Test.java:228:41:228:70 | next(...) : String | Test.java:5469:9:5469:22 | getMapKey(...) | | Test.java:5476:21:5476:23 | out : CaseInsensitiveMap [] : String | Test.java:232:20:232:31 | map : CaseInsensitiveMap [] : String | Test.java:232:43:232:55 | get(...) : String | Test.java:5476:9:5476:24 | getMapValue(...) | @@ -19373,13 +19373,13 @@ subpaths | Test.java:6723:47:6723:62 | (...)... : String | Test.java:253:59:253:67 | element : String | Test.java:253:147:253:147 | x : CircularFifoQueue [] : String | Test.java:6723:15:6723:63 | newCircularFifoQueueWithElement(...) : CircularFifoQueue [] : String | | Test.java:6725:20:6725:22 | out : Queue [] : String | Test.java:230:19:230:32 | it : Queue [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:6725:9:6725:23 | getElement(...) | | Test.java:6730:44:6730:59 | (...)... : String | Test.java:268:39:268:47 | element : String | Test.java:268:107:268:107 | h : TreeSet [] : String | Test.java:6730:22:6730:60 | newTreeSetWithElement(...) : TreeSet [] : String | -| Test.java:6731:46:6731:47 | in : TreeSet [] : String | Test.java:7243:42:7243:66 | set : TreeSet [] : String | Test.java:7243:10:7243:40 | parameter this [Return] : MyAbstractNavigableSetDecorator [] : String | Test.java:6731:10:6731:48 | new MyAbstractNavigableSetDecorator<>(...) : MyAbstractNavigableSetDecorator [] : String | +| Test.java:6731:46:6731:47 | in : TreeSet [] : String | Test.java:7243:42:7243:66 | set : TreeSet [] : String | Test.java:7243:10:7243:40 | parameter this [Reverse] : MyAbstractNavigableSetDecorator [] : String | Test.java:6731:10:6731:48 | new MyAbstractNavigableSetDecorator<>(...) : MyAbstractNavigableSetDecorator [] : String | | Test.java:6732:20:6732:22 | out : MyAbstractNavigableSetDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractNavigableSetDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:6732:9:6732:23 | getElement(...) | | Test.java:6737:42:6737:57 | (...)... : String | Test.java:260:53:260:61 | element : String | Test.java:260:135:260:135 | x : ListOrderedSet [] : String | Test.java:6737:13:6737:58 | newListOrderedSetWithElement(...) : ListOrderedSet [] : String | -| Test.java:6738:37:6738:38 | in : ListOrderedSet [] : String | Test.java:7249:33:7249:48 | set : ListOrderedSet [] : String | Test.java:7249:10:7249:31 | parameter this [Return] : MyAbstractSetDecorator [] : String | Test.java:6738:10:6738:39 | new MyAbstractSetDecorator<>(...) : MyAbstractSetDecorator [] : String | +| Test.java:6738:37:6738:38 | in : ListOrderedSet [] : String | Test.java:7249:33:7249:48 | set : ListOrderedSet [] : String | Test.java:7249:10:7249:31 | parameter this [Reverse] : MyAbstractSetDecorator [] : String | Test.java:6738:10:6738:39 | new MyAbstractSetDecorator<>(...) : MyAbstractSetDecorator [] : String | | Test.java:6739:20:6739:22 | out : MyAbstractSetDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractSetDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:6739:9:6739:23 | getElement(...) | | Test.java:6744:42:6744:57 | (...)... : String | Test.java:260:53:260:61 | element : String | Test.java:260:135:260:135 | x : ListOrderedSet [] : String | Test.java:6744:13:6744:58 | newListOrderedSetWithElement(...) : ListOrderedSet [] : String | -| Test.java:6745:43:6745:44 | in : ListOrderedSet [] : String | Test.java:7255:39:7255:54 | set : ListOrderedSet [] : String | Test.java:7255:10:7255:37 | parameter this [Return] : MyAbstractSortedSetDecorator [] : String | Test.java:6745:10:6745:45 | new MyAbstractSortedSetDecorator<>(...) : MyAbstractSortedSetDecorator [] : String | +| Test.java:6745:43:6745:44 | in : ListOrderedSet [] : String | Test.java:7255:39:7255:54 | set : ListOrderedSet [] : String | Test.java:7255:10:7255:37 | parameter this [Reverse] : MyAbstractSortedSetDecorator [] : String | Test.java:6745:10:6745:45 | new MyAbstractSortedSetDecorator<>(...) : MyAbstractSortedSetDecorator [] : String | | Test.java:6746:20:6746:22 | out : MyAbstractSortedSetDecorator [] : String | Test.java:230:19:230:32 | it : MyAbstractSortedSetDecorator [] : String | Test.java:230:44:230:63 | next(...) : String | Test.java:6746:9:6746:23 | getElement(...) | | Test.java:6754:20:6754:22 | out : CompositeSet [] : Object | Test.java:230:19:230:32 | it : CompositeSet [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:6754:9:6754:23 | getElement(...) | | Test.java:6762:20:6762:34 | getElement(...) : Set [] : Object | Test.java:230:19:230:32 | it : Set [] : Object | Test.java:230:44:230:63 | next(...) : Object | Test.java:6762:9:6762:35 | getElement(...) | diff --git a/java/ql/test/library-tests/frameworks/apache-commons-lang3/flow.expected b/java/ql/test/library-tests/frameworks/apache-commons-lang3/flow.expected index dda3c9c04cd64..df80dc449fff3 100644 --- a/java/ql/test/library-tests/frameworks/apache-commons-lang3/flow.expected +++ b/java/ql/test/library-tests/frameworks/apache-commons-lang3/flow.expected @@ -1649,679 +1649,1253 @@ edges | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:178:29 | fluentAllMethodsTest2 [post update] : StrBuilder | provenance | MaD:51 | | StrBuilderTest.java:178:9:179:23 | append(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:179:23 | append(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | MaD:55 | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [post update] : StrBuilder | provenance | MaD:55 | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | MaD:57 | +| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | MaD:57 | +| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [post update] : StrBuilder | provenance | MaD:57 | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | MaD:59 | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | MaD:59 | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | provenance | MaD:59 | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | MaD:85 | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | MaD:85 | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | provenance | MaD:85 | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | MaD:60 | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | MaD:60 | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | provenance | MaD:60 | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | MaD:61 | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | MaD:61 | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | provenance | MaD:61 | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | MaD:62 | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | MaD:62 | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | provenance | MaD:62 | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | MaD:66 | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | MaD:66 | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | provenance | MaD:66 | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | MaD:72 | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | MaD:72 | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | provenance | MaD:72 | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | MaD:89 | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | MaD:89 | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | provenance | MaD:89 | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | MaD:90 | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | MaD:90 | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | provenance | MaD:90 | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | MaD:91 | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | MaD:91 | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | provenance | MaD:91 | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | MaD:92 | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | MaD:92 | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | provenance | MaD:92 | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | MaD:93 | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | MaD:93 | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | provenance | MaD:93 | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | MaD:98 | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | MaD:98 | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | provenance | MaD:98 | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | MaD:101 | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | MaD:101 | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | provenance | MaD:101 | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | MaD:105 | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | MaD:105 | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | provenance | MaD:105 | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | MaD:107 | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | MaD:107 | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | provenance | MaD:107 | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | MaD:109 | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | MaD:109 | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | provenance | MaD:109 | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | MaD:110 | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | MaD:110 | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | provenance | MaD:110 | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | MaD:112 | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | MaD:112 | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | provenance | MaD:112 | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | MaD:113 | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | MaD:113 | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | provenance | MaD:113 | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | MaD:114 | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | MaD:114 | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | provenance | MaD:114 | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | MaD:115 | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | MaD:115 | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | provenance | MaD:115 | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | -| StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | @@ -2349,28 +2923,52 @@ edges | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | provenance | MaD:122 | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | +| StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | provenance | ValuePreservingMethod | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | provenance | | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | StrBuilderTest.java:206:14:206:34 | fluentAllMethodsTest2 | provenance | ValuePreservingMethod | @@ -4868,52 +5466,76 @@ nodes | StrBuilderTest.java:178:9:179:23 | append(...) [Reverse] : StrBuilder | semmle.label | append(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:179:23 | append(...) [post update] : StrBuilder | semmle.label | append(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | semmle.label | appendAll(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:180:26 | appendAll(...) [Reverse] : StrBuilder | semmle.label | appendAll(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:180:26 | appendAll(...) [post update] : StrBuilder | semmle.label | appendAll(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | semmle.label | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | semmle.label | appendFixedWidthPadLeft(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:181:48 | appendFixedWidthPadLeft(...) [post update] : StrBuilder | semmle.label | appendFixedWidthPadLeft(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | semmle.label | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | semmle.label | appendFixedWidthPadRight(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:182:49 | appendFixedWidthPadRight(...) [post update] : StrBuilder | semmle.label | appendFixedWidthPadRight(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | semmle.label | appendln(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:183:25 | appendln(...) [Reverse] : StrBuilder | semmle.label | appendln(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:183:25 | appendln(...) [post update] : StrBuilder | semmle.label | appendln(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | semmle.label | appendNewLine(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [Reverse] : StrBuilder | semmle.label | appendNewLine(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:184:24 | appendNewLine(...) [post update] : StrBuilder | semmle.label | appendNewLine(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | semmle.label | appendNull(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:185:21 | appendNull(...) [Reverse] : StrBuilder | semmle.label | appendNull(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:185:21 | appendNull(...) [post update] : StrBuilder | semmle.label | appendNull(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | semmle.label | appendPadding(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:186:30 | appendPadding(...) [Reverse] : StrBuilder | semmle.label | appendPadding(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:186:30 | appendPadding(...) [post update] : StrBuilder | semmle.label | appendPadding(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | semmle.label | appendSeparator(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [Reverse] : StrBuilder | semmle.label | appendSeparator(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:187:29 | appendSeparator(...) [post update] : StrBuilder | semmle.label | appendSeparator(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | semmle.label | appendWithSeparators(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [Reverse] : StrBuilder | semmle.label | appendWithSeparators(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:188:52 | appendWithSeparators(...) [post update] : StrBuilder | semmle.label | appendWithSeparators(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | semmle.label | delete(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:189:21 | delete(...) [Reverse] : StrBuilder | semmle.label | delete(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:189:21 | delete(...) [post update] : StrBuilder | semmle.label | delete(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | semmle.label | deleteAll(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:190:23 | deleteAll(...) [Reverse] : StrBuilder | semmle.label | deleteAll(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:190:23 | deleteAll(...) [post update] : StrBuilder | semmle.label | deleteAll(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | semmle.label | deleteCharAt(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [Reverse] : StrBuilder | semmle.label | deleteCharAt(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:191:24 | deleteCharAt(...) [post update] : StrBuilder | semmle.label | deleteCharAt(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | semmle.label | deleteFirst(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [Reverse] : StrBuilder | semmle.label | deleteFirst(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:192:29 | deleteFirst(...) [post update] : StrBuilder | semmle.label | deleteFirst(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | semmle.label | ensureCapacity(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [Reverse] : StrBuilder | semmle.label | ensureCapacity(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:193:28 | ensureCapacity(...) [post update] : StrBuilder | semmle.label | ensureCapacity(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | semmle.label | insert(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:194:30 | insert(...) [Reverse] : StrBuilder | semmle.label | insert(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:194:30 | insert(...) [post update] : StrBuilder | semmle.label | insert(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | semmle.label | minimizeCapacity(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [Reverse] : StrBuilder | semmle.label | minimizeCapacity(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:195:27 | minimizeCapacity(...) [post update] : StrBuilder | semmle.label | minimizeCapacity(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | semmle.label | replace(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:196:37 | replace(...) [Reverse] : StrBuilder | semmle.label | replace(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:196:37 | replace(...) [post update] : StrBuilder | semmle.label | replace(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | semmle.label | replaceAll(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:197:38 | replaceAll(...) [Reverse] : StrBuilder | semmle.label | replaceAll(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:197:38 | replaceAll(...) [post update] : StrBuilder | semmle.label | replaceAll(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | semmle.label | replaceFirst(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [Reverse] : StrBuilder | semmle.label | replaceFirst(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:198:40 | replaceFirst(...) [post update] : StrBuilder | semmle.label | replaceFirst(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | semmle.label | reverse(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:199:18 | reverse(...) [Reverse] : StrBuilder | semmle.label | reverse(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:199:18 | reverse(...) [post update] : StrBuilder | semmle.label | reverse(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | semmle.label | setCharAt(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:200:26 | setCharAt(...) [Reverse] : StrBuilder | semmle.label | setCharAt(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:200:26 | setCharAt(...) [post update] : StrBuilder | semmle.label | setCharAt(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | semmle.label | setLength(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:201:23 | setLength(...) [Reverse] : StrBuilder | semmle.label | setLength(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:201:23 | setLength(...) [post update] : StrBuilder | semmle.label | setLength(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | semmle.label | setNewLineText(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [Reverse] : StrBuilder | semmle.label | setNewLineText(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:202:34 | setNewLineText(...) [post update] : StrBuilder | semmle.label | setNewLineText(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | semmle.label | setNullText(...) [Reverse] : StrBuilder | +| StrBuilderTest.java:178:9:203:28 | setNullText(...) [Reverse] : StrBuilder | semmle.label | setNullText(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:203:28 | setNullText(...) [post update] : StrBuilder | semmle.label | setNullText(...) [post update] : StrBuilder | | StrBuilderTest.java:178:9:204:15 | trim(...) [Reverse] : StrBuilder | semmle.label | trim(...) [Reverse] : StrBuilder | | StrBuilderTest.java:178:9:204:15 | trim(...) [post update] : StrBuilder | semmle.label | trim(...) [post update] : StrBuilder | diff --git a/java/ql/test/library-tests/frameworks/spring/cache/test.expected b/java/ql/test/library-tests/frameworks/spring/cache/test.expected index b2624ed1822f2..7340cbee0b73e 100644 --- a/java/ql/test/library-tests/frameworks/spring/cache/test.expected +++ b/java/ql/test/library-tests/frameworks/spring/cache/test.expected @@ -19,7 +19,7 @@ models | 18 | Summary: org.springframework.cache; Cache; true; putIfAbsent; ; ; Argument[this].MapValue; ReturnValue.MapValue; value; manual | edges | Test.java:13:16:13:29 | element : Object | Test.java:15:19:15:25 | element : Object | provenance | | -| Test.java:15:4:15:7 | this [post update] : ValueWrapper [] : Object | Test.java:13:3:13:14 | parameter this [Return] : ValueWrapper [] : Object | provenance | | +| Test.java:15:4:15:7 | this [post update] : ValueWrapper [] : Object | Test.java:13:3:13:14 | parameter this [Reverse] : ValueWrapper [] : Object | provenance | | | Test.java:15:19:15:25 | element : Object | Test.java:15:4:15:7 | this [post update] : ValueWrapper [] : Object | provenance | MaD:5 | | Test.java:18:17:18:19 | parameter this : ValueWrapper [] : Object | Test.java:18:32:18:35 | this : ValueWrapper [] : Object | provenance | | | Test.java:18:17:18:19 | parameter this : ValueWrapper [] : Object | Test.java:18:32:18:35 | this : ValueWrapper [] : Object | provenance | | @@ -27,8 +27,8 @@ edges | Test.java:18:32:18:35 | this : ValueWrapper [] : Object | Test.java:18:32:18:45 | get(...) : Object | provenance | MaD:3 | | Test.java:22:14:22:23 | key : Object | Test.java:23:13:23:15 | key : Object | provenance | | | Test.java:22:26:22:37 | value : Object | Test.java:23:18:23:22 | value : Object | provenance | | -| Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | provenance | | -| Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | provenance | | +| Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | provenance | | +| Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | provenance | | | Test.java:23:13:23:15 | key : Object | Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | provenance | MaD:14 | | Test.java:23:18:23:22 | value : Object | Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | provenance | MaD:15 | | Test.java:39:19:39:57 | container : ValueRetrievalException [] : Object | Test.java:39:69:39:77 | container : ValueRetrievalException [] : Object | provenance | | @@ -122,7 +122,7 @@ edges | Test.java:137:21:137:23 | out : ValueWrapper [] : Object | Test.java:137:9:137:24 | getMapValue(...) | provenance | MaD:3 | | Test.java:137:21:137:23 | out : ValueWrapper [] : Object | Test.java:137:9:137:24 | getMapValue(...) | provenance | MaD:8 | nodes -| Test.java:13:3:13:14 | parameter this [Return] : ValueWrapper [] : Object | semmle.label | parameter this [Return] : ValueWrapper [] : Object | +| Test.java:13:3:13:14 | parameter this [Reverse] : ValueWrapper [] : Object | semmle.label | parameter this [Reverse] : ValueWrapper [] : Object | | Test.java:13:16:13:29 | element : Object | semmle.label | element : Object | | Test.java:15:4:15:7 | this [post update] : ValueWrapper [] : Object | semmle.label | this [post update] : ValueWrapper [] : Object | | Test.java:15:19:15:25 | element : Object | semmle.label | element : Object | @@ -132,8 +132,8 @@ nodes | Test.java:18:32:18:35 | this : ValueWrapper [] : Object | semmle.label | this : ValueWrapper [] : Object | | Test.java:18:32:18:45 | get(...) : Object | semmle.label | get(...) : Object | | Test.java:18:32:18:45 | get(...) : Object | semmle.label | get(...) : Object | -| Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | semmle.label | parameter this [Return] : DummyCache [] : Object | -| Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | semmle.label | parameter this [Return] : DummyCache [] : Object | +| Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | semmle.label | parameter this [Reverse] : DummyCache [] : Object | +| Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | semmle.label | parameter this [Reverse] : DummyCache [] : Object | | Test.java:22:14:22:23 | key : Object | semmle.label | key : Object | | Test.java:22:26:22:37 | value : Object | semmle.label | value : Object | | Test.java:23:4:23:7 | this [post update] : DummyCache [] : Object | semmle.label | this [post update] : DummyCache [] : Object | @@ -228,20 +228,20 @@ nodes subpaths | Test.java:42:60:42:68 | container : ValueWrapper [] : Object | Test.java:18:17:18:19 | parameter this : ValueWrapper [] : Object | Test.java:18:32:18:45 | get(...) : Object | Test.java:42:60:42:74 | get(...) : Object | | Test.java:53:19:53:21 | out : ValueRetrievalException [] : Object | Test.java:39:19:39:57 | container : ValueRetrievalException [] : Object | Test.java:39:69:39:86 | getKey(...) : Object | Test.java:53:9:53:22 | getMapKey(...) | -| Test.java:65:45:65:52 | source(...) : Object | Test.java:13:16:13:29 | element : Object | Test.java:13:3:13:14 | parameter this [Return] : ValueWrapper [] : Object | Test.java:65:28:65:53 | new ValueWrapper(...) : ValueWrapper [] : Object | +| Test.java:65:45:65:52 | source(...) : Object | Test.java:13:16:13:29 | element : Object | Test.java:13:3:13:14 | parameter this [Reverse] : ValueWrapper [] : Object | Test.java:65:28:65:53 | new ValueWrapper(...) : ValueWrapper [] : Object | | Test.java:66:10:66:11 | in : ValueWrapper [] : Object | Test.java:18:17:18:19 | parameter this : ValueWrapper [] : Object | Test.java:18:32:18:45 | get(...) : Object | Test.java:66:10:66:17 | get(...) : Object | -| Test.java:72:36:72:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:72:15:72:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:72:36:72:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:72:15:72:44 | new DummyCache(...) : DummyCache [] : Object | | Test.java:74:21:74:23 | out : ValueWrapper [] : Object | Test.java:42:21:42:48 | container : ValueWrapper [] : Object | Test.java:42:60:42:74 | get(...) : Object | Test.java:74:9:74:24 | getMapValue(...) | -| Test.java:79:36:79:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:79:15:79:44 | new DummyCache(...) : DummyCache [] : Object | -| Test.java:86:36:86:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:86:15:86:44 | new DummyCache(...) : DummyCache [] : Object | -| Test.java:93:30:93:37 | source(...) : Object | Test.java:22:14:22:23 | key : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:93:15:93:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:79:36:79:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:79:15:79:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:86:36:86:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:86:15:86:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:93:30:93:37 | source(...) : Object | Test.java:22:14:22:23 | key : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:93:15:93:44 | new DummyCache(...) : DummyCache [] : Object | | Test.java:95:19:95:28 | (...)... : Cache [] : Object | Test.java:40:19:40:33 | container : Cache [] : Object | Test.java:40:45:40:104 | next(...) : Object | Test.java:95:9:95:29 | getMapKey(...) | -| Test.java:100:36:100:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:100:15:100:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:100:36:100:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:100:15:100:44 | new DummyCache(...) : DummyCache [] : Object | | Test.java:102:21:102:30 | (...)... : Cache [] : Object | Test.java:41:21:41:35 | container : Cache [] : Object | Test.java:41:47:41:78 | get(...) : Object | Test.java:102:9:102:31 | getMapValue(...) | | Test.java:109:19:109:21 | out : Cache [] : Object | Test.java:40:19:40:33 | container : Cache [] : Object | Test.java:40:45:40:104 | next(...) : Object | Test.java:109:9:109:22 | getMapKey(...) | | Test.java:116:21:116:23 | out : Cache [] : Object | Test.java:41:21:41:35 | container : Cache [] : Object | Test.java:41:47:41:78 | get(...) : Object | Test.java:116:9:116:24 | getMapValue(...) | | Test.java:123:19:123:21 | out : Cache [] : Object | Test.java:40:19:40:33 | container : Cache [] : Object | Test.java:40:45:40:104 | next(...) : Object | Test.java:123:9:123:22 | getMapKey(...) | | Test.java:130:21:130:23 | out : Cache [] : Object | Test.java:41:21:41:35 | container : Cache [] : Object | Test.java:41:47:41:78 | get(...) : Object | Test.java:130:9:130:24 | getMapValue(...) | -| Test.java:135:36:135:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Return] : DummyCache [] : Object | Test.java:135:15:135:44 | new DummyCache(...) : DummyCache [] : Object | +| Test.java:135:36:135:43 | source(...) : Object | Test.java:22:26:22:37 | value : Object | Test.java:22:3:22:12 | parameter this [Reverse] : DummyCache [] : Object | Test.java:135:15:135:44 | new DummyCache(...) : DummyCache [] : Object | | Test.java:137:21:137:23 | out : ValueWrapper [] : Object | Test.java:42:21:42:48 | container : ValueWrapper [] : Object | Test.java:42:60:42:74 | get(...) : Object | Test.java:137:9:137:24 | getMapValue(...) | testFailures diff --git a/java/ql/test/library-tests/frameworks/spring/data/test.expected b/java/ql/test/library-tests/frameworks/spring/data/test.expected index 6e9baf4cc4e25..b41e5b85ab3af 100644 --- a/java/ql/test/library-tests/frameworks/spring/data/test.expected +++ b/java/ql/test/library-tests/frameworks/spring/data/test.expected @@ -2,8 +2,7 @@ models | 1 | Summary: org.springframework.data.repository; CrudRepository; true; save; ; ; Argument[0]; ReturnValue; value; manual | edges | Test.java:5:17:5:24 | f : String | Test.java:6:18:6:18 | f : String | provenance | | -| Test.java:6:5:6:8 | this [Reverse] : Struct [field] : String | Test.java:5:10:5:15 | parameter this [Return] : Struct [field] : String | provenance | | -| Test.java:6:5:6:8 | this [post update] : Struct [field] : String | Test.java:6:5:6:8 | this [Reverse] : Struct [field] : String | provenance | | +| Test.java:6:5:6:8 | this [post update] : Struct [field] : String | Test.java:5:10:5:15 | parameter this [Reverse] : Struct [field] : String | provenance | | | Test.java:6:18:6:18 | f : String | Test.java:6:5:6:8 | this [post update] : Struct [field] : String | provenance | | | Test.java:15:16:15:35 | new Struct(...) : Struct [field] : String | Test.java:16:17:16:17 | s : Struct [field] : String | provenance | | | Test.java:15:27:15:34 | source(...) : String | Test.java:5:17:5:24 | f : String | provenance | | @@ -12,9 +11,8 @@ edges | Test.java:16:17:16:17 | s : Struct [field] : String | Test.java:16:9:16:18 | save(...) : Struct [field] : String | provenance | MaD:1 | | Test.java:17:10:17:10 | s : Struct [field] : String | Test.java:17:10:17:16 | s.field | provenance | | nodes -| Test.java:5:10:5:15 | parameter this [Return] : Struct [field] : String | semmle.label | parameter this [Return] : Struct [field] : String | +| Test.java:5:10:5:15 | parameter this [Reverse] : Struct [field] : String | semmle.label | parameter this [Reverse] : Struct [field] : String | | Test.java:5:17:5:24 | f : String | semmle.label | f : String | -| Test.java:6:5:6:8 | this [Reverse] : Struct [field] : String | semmle.label | this [Reverse] : Struct [field] : String | | Test.java:6:5:6:8 | this [post update] : Struct [field] : String | semmle.label | this [post update] : Struct [field] : String | | Test.java:6:18:6:18 | f : String | semmle.label | f : String | | Test.java:15:16:15:35 | new Struct(...) : Struct [field] : String | semmle.label | new Struct(...) : Struct [field] : String | @@ -24,5 +22,5 @@ nodes | Test.java:17:10:17:10 | s : Struct [field] : String | semmle.label | s : Struct [field] : String | | Test.java:17:10:17:16 | s.field | semmle.label | s.field | subpaths -| Test.java:15:27:15:34 | source(...) : String | Test.java:5:17:5:24 | f : String | Test.java:5:10:5:15 | parameter this [Return] : Struct [field] : String | Test.java:15:16:15:35 | new Struct(...) : Struct [field] : String | +| Test.java:15:27:15:34 | source(...) : String | Test.java:5:17:5:24 | f : String | Test.java:5:10:5:15 | parameter this [Reverse] : Struct [field] : String | Test.java:15:16:15:35 | new Struct(...) : Struct [field] : String | testFailures diff --git a/java/ql/test/library-tests/frameworks/spring/webutil/test.expected b/java/ql/test/library-tests/frameworks/spring/webutil/test.expected index dd5e222d69c48..0be97f8c942f8 100644 --- a/java/ql/test/library-tests/frameworks/spring/webutil/test.expected +++ b/java/ql/test/library-tests/frameworks/spring/webutil/test.expected @@ -167,7 +167,7 @@ models | 166 | Summary: org.springframework.web.util; WebUtils; false; setSessionAttribute; ; ; Argument[2]; Argument[0]; taint; manual | edges | Test.java:44:30:44:34 | m : Map [] : Object | Test.java:44:45:44:45 | m : Map [] : Object | provenance | | -| Test.java:44:39:44:47 | this [post update] : StubUriTemplateVariables [] : Object | Test.java:44:5:44:28 | parameter this [Return] : StubUriTemplateVariables [] : Object | provenance | | +| Test.java:44:39:44:47 | this [post update] : StubUriTemplateVariables [] : Object | Test.java:44:5:44:28 | parameter this [Reverse] : StubUriTemplateVariables [] : Object | provenance | | | Test.java:44:45:44:45 | m : Map [] : Object | Test.java:44:39:44:47 | this [post update] : StubUriTemplateVariables [] : Object | provenance | MaD:2 | | Test.java:46:19:46:26 | parameter this : StubUriTemplateVariables [] : Object | Test.java:46:50:46:53 | this : StubUriTemplateVariables [] : Object | provenance | | | Test.java:46:50:46:53 | this : StubUriTemplateVariables [] : Object | Test.java:46:50:46:63 | get(...) : Object | provenance | MaD:7 | @@ -1650,7 +1650,7 @@ edges | Test.java:2565:33:2565:35 | out [post update] : HttpServletRequest | Test.java:2566:9:2566:11 | out | provenance | | | Test.java:2565:44:2565:45 | in : Object | Test.java:2565:33:2565:35 | out [post update] : HttpServletRequest | provenance | MaD:166 | nodes -| Test.java:44:5:44:28 | parameter this [Return] : StubUriTemplateVariables [] : Object | semmle.label | parameter this [Return] : StubUriTemplateVariables [] : Object | +| Test.java:44:5:44:28 | parameter this [Reverse] : StubUriTemplateVariables [] : Object | semmle.label | parameter this [Reverse] : StubUriTemplateVariables [] : Object | | Test.java:44:30:44:34 | m : Map [] : Object | semmle.label | m : Map [] : Object | | Test.java:44:39:44:47 | this [post update] : StubUriTemplateVariables [] : Object | semmle.label | this [post update] : StubUriTemplateVariables [] : Object | | Test.java:44:45:44:45 | m : Map [] : Object | semmle.label | m : Map [] : Object | @@ -3438,10 +3438,10 @@ subpaths | Test.java:1146:47:1146:54 | source(...) : Object | Test.java:54:40:54:53 | element : Object | Test.java:54:65:54:110 | new LinkedMultiValueMap<>(...) : LinkedMultiValueMap [] : Object | Test.java:1146:23:1146:55 | newMultiValueMapWithKey(...) : LinkedMultiValueMap [] : Object | | Test.java:1154:49:1154:56 | source(...) : Object | Test.java:55:42:55:55 | element : Object | Test.java:55:134:55:134 | m : LinkedMultiValueMap [] : Object | Test.java:1154:23:1154:57 | newMultiValueMapWithValue(...) : LinkedMultiValueMap [] : Object | | Test.java:1162:49:1162:56 | source(...) : Object | Test.java:55:42:55:55 | element : Object | Test.java:55:134:55:134 | m : LinkedMultiValueMap [] : Object | Test.java:1162:23:1162:57 | newMultiValueMapWithValue(...) : LinkedMultiValueMap [] : Object | -| Test.java:1302:73:1302:94 | of(...) : Map [] : Object | Test.java:44:30:44:34 | m : Map [] : Object | Test.java:44:5:44:28 | parameter this [Return] : StubUriTemplateVariables [] : Object | Test.java:1302:44:1302:95 | new StubUriTemplateVariables(...) : StubUriTemplateVariables [] : Object | +| Test.java:1302:73:1302:94 | of(...) : Map [] : Object | Test.java:44:30:44:34 | m : Map [] : Object | Test.java:44:5:44:28 | parameter this [Reverse] : StubUriTemplateVariables [] : Object | Test.java:1302:44:1302:95 | new StubUriTemplateVariables(...) : StubUriTemplateVariables [] : Object | | Test.java:1303:10:1303:11 | in : StubUriTemplateVariables [] : Object | Test.java:46:19:46:26 | parameter this : StubUriTemplateVariables [] : Object | Test.java:46:50:46:63 | get(...) : Object | Test.java:1303:10:1303:26 | getValue(...) : Object | | Test.java:1337:29:1337:36 | source(...) : Object | Test.java:53:22:53:35 | element : Object | Test.java:53:47:53:67 | of(...) : Map [] : Object | Test.java:1337:13:1337:37 | newMapWithValue(...) : Map [] : Object | -| Test.java:1353:73:1353:94 | of(...) : Map [] : Object | Test.java:44:30:44:34 | m : Map [] : Object | Test.java:44:5:44:28 | parameter this [Return] : StubUriTemplateVariables [] : Object | Test.java:1353:44:1353:95 | new StubUriTemplateVariables(...) : StubUriTemplateVariables [] : Object | +| Test.java:1353:73:1353:94 | of(...) : Map [] : Object | Test.java:44:30:44:34 | m : Map [] : Object | Test.java:44:5:44:28 | parameter this [Reverse] : StubUriTemplateVariables [] : Object | Test.java:1353:44:1353:95 | new StubUriTemplateVariables(...) : StubUriTemplateVariables [] : Object | | Test.java:1398:20:1398:41 | (...)... : List [] : Object | Test.java:49:20:49:39 | container : List [] : Object | Test.java:49:51:49:77 | next(...) : Object | Test.java:1398:9:1398:42 | getElement(...) | | Test.java:1398:38:1398:40 | out : MultiValueMap [, ] : Object | Test.java:51:20:51:29 | m : MultiValueMap [, ] : Object | Test.java:51:41:51:51 | get(...) : Object [] : Object | Test.java:1398:26:1398:41 | getMapValue(...) : Object [] : Object | | Test.java:1405:19:1405:21 | out : MultiValueMap [] : Object | Test.java:50:18:50:27 | m : MultiValueMap [] : Object | Test.java:50:39:50:66 | next(...) : Object | Test.java:1405:9:1405:22 | getMapKey(...) | diff --git a/java/ql/test/library-tests/frameworks/stream/test.expected b/java/ql/test/library-tests/frameworks/stream/test.expected index 185ec01a6a70f..5531870d1394a 100644 --- a/java/ql/test/library-tests/frameworks/stream/test.expected +++ b/java/ql/test/library-tests/frameworks/stream/test.expected @@ -299,25 +299,25 @@ edges | Test.java:232:33:232:33 | x : Object | Test.java:232:44:232:44 | x | provenance | | | Test.java:238:18:238:18 | a : Object[] [[]] : Object | Test.java:238:32:238:32 | a : Object[] [[]] : Object | provenance | | | Test.java:238:32:238:32 | a : Object[] [[]] : Object | Test.java:238:32:238:35 | ...[...] | provenance | | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | -| Test.java:240:21:240:22 | a1 [post update] : Object[] [[]] : Object | Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | provenance | | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:14+MaD:12 | +| Test.java:240:21:240:22 | a1 [post update] : Object[] [[]] : Object | Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | provenance | | | Test.java:240:29:240:47 | source(...) : Object | Test.java:240:21:240:22 | a1 [post update] : Object[] [[]] : Object | provenance | | -| Test.java:241:21:241:22 | a2 [post update] : Object[] [[]] : Object | Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | provenance | | +| Test.java:241:21:241:22 | a2 [post update] : Object[] [[]] : Object | Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | provenance | | | Test.java:241:29:241:47 | source(...) : Object | Test.java:241:21:241:22 | a2 [post update] : Object[] [[]] : Object | provenance | | | Test.java:248:28:257:18 | collect(...) : Object[] [[]] : Object | Test.java:258:18:258:20 | out : Object[] [[]] : Object | provenance | | | Test.java:249:23:249:58 | new Object[] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:11 | @@ -333,18 +333,18 @@ edges | Test.java:249:23:249:58 | {...} : Object[] [[]] : Object | Test.java:249:23:249:58 | new Object[] : Object[] [[]] : Object | provenance | | | Test.java:249:38:249:56 | source(...) : Object | Test.java:249:23:249:58 | {...} : Object[] [[]] : Object | provenance | | | Test.java:250:18:250:18 | a : Object[] [[]] : Object | Test.java:251:26:251:26 | a : Object[] [[]] : Object | provenance | | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:12+MaD:14 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:248:28:257:18 | collect(...) : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:248:28:257:18 | collect(...) : Object[] [[]] : Object | provenance | MaD:13 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:12+MaD:14 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:12 | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:238:18:238:18 | a : Object[] [[]] : Object | provenance | MaD:12+MaD:14 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:248:28:257:18 | collect(...) : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:248:28:257:18 | collect(...) : Object[] [[]] : Object | provenance | MaD:13 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:250:18:250:18 | a : Object[] [[]] : Object | provenance | MaD:12+MaD:14 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | provenance | MaD:12 | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:12 | | Test.java:251:26:251:26 | a : Object[] [[]] : Object | Test.java:251:26:251:29 | ...[...] | provenance | | -| Test.java:252:21:252:21 | a [post update] : Object[] [[]] : Object | Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | provenance | | +| Test.java:252:21:252:21 | a [post update] : Object[] [[]] : Object | Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | provenance | | | Test.java:252:28:252:46 | source(...) : Object | Test.java:252:21:252:21 | a [post update] : Object[] [[]] : Object | provenance | | | Test.java:254:18:254:19 | a1 : Object[] [[]] : Object | Test.java:255:26:255:27 | a1 : Object[] [[]] : Object | provenance | | | Test.java:254:22:254:23 | a2 : Object[] [[]] : Object | Test.java:256:26:256:27 | a2 : Object[] [[]] : Object | provenance | | @@ -359,15 +359,19 @@ edges | Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | provenance | MaD:15 | | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | Test.java:269:18:269:20 | out : Object[] [[]] : Object | provenance | | | Test.java:264:21:264:21 | x : Object | Test.java:264:36:264:36 | x : Object | provenance | | -| Test.java:264:29:264:29 | a [post update] : Object[] [[]] : Object | Test.java:264:18:264:18 | a [Return] : Object[] [[]] : Object | provenance | | +| Test.java:264:29:264:29 | a [post update] : Object[] [[]] : Object | Test.java:264:18:264:18 | a [Reverse] : Object[] [[]] : Object | provenance | | | Test.java:264:36:264:36 | x : Object | Test.java:264:29:264:29 | a [post update] : Object[] [[]] : Object | provenance | | | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | provenance | | | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | Test.java:266:29:266:30 | a2 : Object[] [[]] : Object | provenance | | -| Test.java:266:21:266:22 | a1 [post update] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 [Return] : Object[] [[]] : Object | provenance | | +| Test.java:266:21:266:22 | a1 [post update] : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 [Reverse] : Object[] [[]] : Object | provenance | | +| Test.java:266:21:266:22 | a1 [post update] : Object[] [[]] : Object | Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | provenance | | | Test.java:266:29:266:30 | a2 : Object[] [[]] : Object | Test.java:266:29:266:33 | ...[...] : Object | provenance | | | Test.java:266:29:266:33 | ...[...] : Object | Test.java:266:21:266:22 | a1 [post update] : Object[] [[]] : Object | provenance | | -| Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Return] : Object[] [[]] : Object | provenance | | +| Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | provenance | | +| Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | provenance | | | Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | Test.java:267:29:267:33 | ...[...] : Object | provenance | | +| Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | Test.java:267:29:267:33 | ...[...] : Object | provenance | | +| Test.java:267:29:267:33 | ...[...] : Object | Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | provenance | | | Test.java:267:29:267:33 | ...[...] : Object | Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | provenance | | | Test.java:269:18:269:20 | out : Object[] [[]] : Object | Test.java:269:18:269:23 | ...[...] | provenance | | | Test.java:273:33:273:62 | of(...) : Stream [] : Object | Test.java:274:13:274:14 | in : Stream [] : Object | provenance | | @@ -776,8 +780,8 @@ nodes | Test.java:238:18:238:18 | a : Object[] [[]] : Object | semmle.label | a : Object[] [[]] : Object | | Test.java:238:32:238:32 | a : Object[] [[]] : Object | semmle.label | a : Object[] [[]] : Object | | Test.java:238:32:238:35 | ...[...] | semmle.label | ...[...] | -| Test.java:239:18:239:19 | a1 [Return] : Object[] [[]] : Object | semmle.label | a1 [Return] : Object[] [[]] : Object | -| Test.java:239:22:239:23 | a2 [Return] : Object[] [[]] : Object | semmle.label | a2 [Return] : Object[] [[]] : Object | +| Test.java:239:18:239:19 | a1 [Reverse] : Object[] [[]] : Object | semmle.label | a1 [Reverse] : Object[] [[]] : Object | +| Test.java:239:22:239:23 | a2 [Reverse] : Object[] [[]] : Object | semmle.label | a2 [Reverse] : Object[] [[]] : Object | | Test.java:240:21:240:22 | a1 [post update] : Object[] [[]] : Object | semmle.label | a1 [post update] : Object[] [[]] : Object | | Test.java:240:29:240:47 | source(...) : Object | semmle.label | source(...) : Object | | Test.java:241:21:241:22 | a2 [post update] : Object[] [[]] : Object | semmle.label | a2 [post update] : Object[] [[]] : Object | @@ -787,7 +791,7 @@ nodes | Test.java:249:23:249:58 | {...} : Object[] [[]] : Object | semmle.label | {...} : Object[] [[]] : Object | | Test.java:249:38:249:56 | source(...) : Object | semmle.label | source(...) : Object | | Test.java:250:18:250:18 | a : Object[] [[]] : Object | semmle.label | a : Object[] [[]] : Object | -| Test.java:250:18:250:18 | a [Return] : Object[] [[]] : Object | semmle.label | a [Return] : Object[] [[]] : Object | +| Test.java:250:18:250:18 | a [Reverse] : Object[] [[]] : Object | semmle.label | a [Reverse] : Object[] [[]] : Object | | Test.java:251:26:251:26 | a : Object[] [[]] : Object | semmle.label | a : Object[] [[]] : Object | | Test.java:251:26:251:29 | ...[...] | semmle.label | ...[...] | | Test.java:252:21:252:21 | a [post update] : Object[] [[]] : Object | semmle.label | a [post update] : Object[] [[]] : Object | @@ -804,19 +808,23 @@ nodes | Test.java:261:43:261:61 | source(...) : Object | semmle.label | source(...) : Object | | Test.java:262:28:262:29 | in : Stream [] : Object | semmle.label | in : Stream [] : Object | | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | semmle.label | collect(...) : Object[] [[]] : Object | -| Test.java:264:18:264:18 | a [Return] : Object[] [[]] : Object | semmle.label | a [Return] : Object[] [[]] : Object | +| Test.java:264:18:264:18 | a [Reverse] : Object[] [[]] : Object | semmle.label | a [Reverse] : Object[] [[]] : Object | | Test.java:264:21:264:21 | x : Object | semmle.label | x : Object | | Test.java:264:29:264:29 | a [post update] : Object[] [[]] : Object | semmle.label | a [post update] : Object[] [[]] : Object | | Test.java:264:36:264:36 | x : Object | semmle.label | x : Object | | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | semmle.label | a1 : Object[] [[]] : Object | -| Test.java:265:18:265:19 | a1 [Return] : Object[] [[]] : Object | semmle.label | a1 [Return] : Object[] [[]] : Object | +| Test.java:265:18:265:19 | a1 [Reverse] : Object[] [[]] : Object | semmle.label | a1 [Reverse] : Object[] [[]] : Object | | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | semmle.label | a2 : Object[] [[]] : Object | -| Test.java:265:22:265:23 | a2 [Return] : Object[] [[]] : Object | semmle.label | a2 [Return] : Object[] [[]] : Object | +| Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | semmle.label | a2 [Reverse] : Object[] [[]] : Object | +| Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | semmle.label | a2 [Reverse] : Object[] [[]] : Object | | Test.java:266:21:266:22 | a1 [post update] : Object[] [[]] : Object | semmle.label | a1 [post update] : Object[] [[]] : Object | | Test.java:266:29:266:30 | a2 : Object[] [[]] : Object | semmle.label | a2 : Object[] [[]] : Object | | Test.java:266:29:266:33 | ...[...] : Object | semmle.label | ...[...] : Object | | Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | semmle.label | a2 [post update] : Object[] [[]] : Object | +| Test.java:267:21:267:22 | a2 [post update] : Object[] [[]] : Object | semmle.label | a2 [post update] : Object[] [[]] : Object | | Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | semmle.label | a1 : Object[] [[]] : Object | +| Test.java:267:29:267:30 | a1 : Object[] [[]] : Object | semmle.label | a1 : Object[] [[]] : Object | +| Test.java:267:29:267:33 | ...[...] : Object | semmle.label | ...[...] : Object | | Test.java:267:29:267:33 | ...[...] : Object | semmle.label | ...[...] : Object | | Test.java:269:18:269:20 | out : Object[] [[]] : Object | semmle.label | out : Object[] [[]] : Object | | Test.java:269:18:269:23 | ...[...] | semmle.label | ...[...] | @@ -1037,9 +1045,10 @@ subpaths | Test.java:201:34:201:36 | out : Object[] [[]] : Object | Test.java:16:27:16:35 | array : Object[] [[]] : Object | Test.java:16:47:16:54 | ...[...] : Object | Test.java:201:18:201:37 | getArrayElement(...) | | Test.java:208:34:208:36 | out : Object[] [[]] : Object | Test.java:16:27:16:35 | array : Object[] [[]] : Object | Test.java:16:47:16:54 | ...[...] : Object | Test.java:208:18:208:37 | getArrayElement(...) | | Test.java:215:29:215:31 | out : List [] : Object | Test.java:18:22:18:35 | it : List [] : Object | Test.java:18:47:18:66 | next(...) : Object | Test.java:215:18:215:32 | getElement(...) | -| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:264:21:264:21 | x : Object | Test.java:264:18:264:18 | a [Return] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | -| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Return] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | -| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 [Return] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | +| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:264:21:264:21 | x : Object | Test.java:264:18:264:18 | a [Reverse] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | +| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:18:265:19 | a1 : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | +| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | Test.java:265:18:265:19 | a1 [Reverse] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | +| Test.java:262:28:262:29 | in : Stream [] : Object | Test.java:265:22:265:23 | a2 : Object[] [[]] : Object | Test.java:265:22:265:23 | a2 [Reverse] : Object[] [[]] : Object | Test.java:262:28:268:18 | collect(...) : Object[] [[]] : Object | | Test.java:289:29:289:31 | out : Stream [] : Object | Test.java:17:22:17:38 | s : Stream [] : Object | Test.java:17:50:17:68 | next(...) : Object | Test.java:289:18:289:32 | getElement(...) | | Test.java:319:29:319:31 | out : Stream [] : Object | Test.java:17:22:17:38 | s : Stream [] : Object | Test.java:17:50:17:68 | next(...) : Object | Test.java:319:18:319:32 | getElement(...) | | Test.java:335:29:335:31 | out : Stream [] : Object | Test.java:17:22:17:38 | s : Stream [] : Object | Test.java:17:50:17:68 | next(...) : Object | Test.java:335:18:335:32 | getElement(...) | diff --git a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTainted.expected b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTainted.expected index be52a61cf3a29..fbc2c51ef55bd 100644 --- a/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTainted.expected +++ b/java/ql/test/query-tests/security/CWE-190/semmle/tests/ArithmeticTainted.expected @@ -47,8 +47,7 @@ edges | ArithmeticTainted.java:133:27:133:34 | data : Number | ArithmeticTainted.java:135:3:135:6 | data | provenance | | | ArithmeticTainted.java:137:27:137:34 | data : Number | ArithmeticTainted.java:139:5:139:8 | data | provenance | | | Holder.java:12:22:12:26 | d : Number | Holder.java:13:9:13:9 | d : Number | provenance | | -| Holder.java:13:3:13:5 | this <.field> [Reverse] : Holder [dat] : Number | Holder.java:12:14:12:20 | parameter this [Return] : Holder [dat] : Number | provenance | | -| Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | Holder.java:13:3:13:5 | this <.field> [Reverse] : Holder [dat] : Number | provenance | | +| Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | Holder.java:12:14:12:20 | parameter this [Reverse] : Holder [dat] : Number | provenance | | | Holder.java:13:9:13:9 | d : Number | Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | provenance | | | Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | provenance | | | Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | Holder.java:17:10:17:12 | dat : Number | provenance | | @@ -95,14 +94,13 @@ nodes | ArithmeticTainted.java:135:3:135:6 | data | semmle.label | data | | ArithmeticTainted.java:137:27:137:34 | data : Number | semmle.label | data : Number | | ArithmeticTainted.java:139:5:139:8 | data | semmle.label | data | -| Holder.java:12:14:12:20 | parameter this [Return] : Holder [dat] : Number | semmle.label | parameter this [Return] : Holder [dat] : Number | +| Holder.java:12:14:12:20 | parameter this [Reverse] : Holder [dat] : Number | semmle.label | parameter this [Reverse] : Holder [dat] : Number | | Holder.java:12:22:12:26 | d : Number | semmle.label | d : Number | -| Holder.java:13:3:13:5 | this <.field> [Reverse] : Holder [dat] : Number | semmle.label | this <.field> [Reverse] : Holder [dat] : Number | | Holder.java:13:3:13:5 | this <.field> [post update] : Holder [dat] : Number | semmle.label | this <.field> [post update] : Holder [dat] : Number | | Holder.java:13:9:13:9 | d : Number | semmle.label | d : Number | | Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | semmle.label | parameter this : Holder [dat] : Number | | Holder.java:17:10:17:12 | dat : Number | semmle.label | dat : Number | | Holder.java:17:10:17:12 | this <.field> : Holder [dat] : Number | semmle.label | this <.field> : Holder [dat] : Number | subpaths -| ArithmeticTainted.java:64:20:64:23 | data : Number | Holder.java:12:22:12:26 | d : Number | Holder.java:12:14:12:20 | parameter this [Return] : Holder [dat] : Number | ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | +| ArithmeticTainted.java:64:20:64:23 | data : Number | Holder.java:12:22:12:26 | d : Number | Holder.java:12:14:12:20 | parameter this [Reverse] : Holder [dat] : Number | ArithmeticTainted.java:64:4:64:10 | tainted [post update] : Holder [dat] : Number | | ArithmeticTainted.java:66:18:66:24 | tainted : Holder [dat] : Number | Holder.java:16:13:16:19 | parameter this : Holder [dat] : Number | Holder.java:17:10:17:12 | dat : Number | ArithmeticTainted.java:66:18:66:34 | getData(...) : Number | diff --git a/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected index 2fad7bb9a843c..e35fdf6530145 100644 --- a/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected +++ b/python/ql/test/library-tests/dataflow/coverage/NormalDataflowTest.expected @@ -1,2 +1,3 @@ missingAnnotationOnSink testFailures +| argumentPassing.py:322:10:322:14 | ControlFlowNode for Attribute | Unexpected result: flow="SOURCE, l:-1 -> a.foo" | diff --git a/ruby/ql/test/library-tests/dataflow/erb/erb.expected b/ruby/ql/test/library-tests/dataflow/erb/erb.expected index eb507279c0b79..1b18ffad377cf 100644 --- a/ruby/ql/test/library-tests/dataflow/erb/erb.expected +++ b/ruby/ql/test/library-tests/dataflow/erb/erb.expected @@ -29,16 +29,16 @@ edges | view1.rb:9:5:11:7 | self in foo [@x] | view1.rb:10:14:10:15 | self [@x] | provenance | | | view1.rb:10:14:10:15 | self [@x] | view1.rb:10:14:10:15 | @x | provenance | | | view1.rb:13:13:13:13 | x | view1.rb:14:14:14:14 | x | provenance | | -| view1.rb:14:9:14:10 | [post] self [@x] | view1.rb:13:5:15:7 | self in set [Return] [@x] | provenance | | +| view1.rb:14:9:14:10 | [post] self [@x] | view1.rb:13:5:15:7 | self in set [Reverse] [@x] | provenance | | | view1.rb:14:14:14:14 | x | view1.rb:14:9:14:10 | [post] self [@x] | provenance | | -| view2.html.erb:3:1:3:14 | [post] self [@x] | view2.html.erb:3:1:4:1 | self in view2.html.erb [Return] [@x] | provenance | | -| view2.html.erb:3:1:4:1 | self in view2.html.erb [Return] [@x] | main.rb:10:16:10:19 | [post] view [@x] | provenance | | +| view2.html.erb:3:1:3:14 | [post] self [@x] | view2.html.erb:3:1:4:1 | self in view2.html.erb [Reverse] [@x] | provenance | | +| view2.html.erb:3:1:4:1 | self in view2.html.erb [Reverse] [@x] | main.rb:10:16:10:19 | [post] view [@x] | provenance | | | view2.html.erb:3:5:3:13 | call to source | view2.html.erb:3:1:3:14 | [post] self [@x] | provenance | | | view2.html.erb:3:5:3:13 | call to source | view2.rb:6:13:6:13 | x | provenance | | | view2.rb:2:5:4:7 | self in foo [@x] | view2.rb:3:14:3:15 | self [@x] | provenance | | | view2.rb:3:14:3:15 | self [@x] | view2.rb:3:14:3:15 | @x | provenance | | | view2.rb:6:13:6:13 | x | view2.rb:7:14:7:14 | x | provenance | | -| view2.rb:7:9:7:10 | [post] self [@x] | view2.rb:6:5:8:7 | self in set [Return] [@x] | provenance | | +| view2.rb:7:9:7:10 | [post] self [@x] | view2.rb:6:5:8:7 | self in set [Reverse] [@x] | provenance | | | view2.rb:7:14:7:14 | x | view2.rb:7:9:7:10 | [post] self [@x] | provenance | | | view3.html.erb:3:1:4:1 | self in view3.html.erb [@x] | view3.html.erb:3:6:3:8 | self [@x] | provenance | | | view3.html.erb:3:6:3:8 | self [@x] | view3.html.erb:3:6:3:8 | call to get | provenance | | @@ -74,17 +74,17 @@ nodes | view1.rb:9:5:11:7 | self in foo [@x] | semmle.label | self in foo [@x] | | view1.rb:10:14:10:15 | @x | semmle.label | @x | | view1.rb:10:14:10:15 | self [@x] | semmle.label | self [@x] | -| view1.rb:13:5:15:7 | self in set [Return] [@x] | semmle.label | self in set [Return] [@x] | +| view1.rb:13:5:15:7 | self in set [Reverse] [@x] | semmle.label | self in set [Reverse] [@x] | | view1.rb:13:13:13:13 | x | semmle.label | x | | view1.rb:14:9:14:10 | [post] self [@x] | semmle.label | [post] self [@x] | | view1.rb:14:14:14:14 | x | semmle.label | x | | view2.html.erb:3:1:3:14 | [post] self [@x] | semmle.label | [post] self [@x] | -| view2.html.erb:3:1:4:1 | self in view2.html.erb [Return] [@x] | semmle.label | self in view2.html.erb [Return] [@x] | +| view2.html.erb:3:1:4:1 | self in view2.html.erb [Reverse] [@x] | semmle.label | self in view2.html.erb [Reverse] [@x] | | view2.html.erb:3:5:3:13 | call to source | semmle.label | call to source | | view2.rb:2:5:4:7 | self in foo [@x] | semmle.label | self in foo [@x] | | view2.rb:3:14:3:15 | @x | semmle.label | @x | | view2.rb:3:14:3:15 | self [@x] | semmle.label | self [@x] | -| view2.rb:6:5:8:7 | self in set [Return] [@x] | semmle.label | self in set [Return] [@x] | +| view2.rb:6:5:8:7 | self in set [Reverse] [@x] | semmle.label | self in set [Reverse] [@x] | | view2.rb:6:13:6:13 | x | semmle.label | x | | view2.rb:7:9:7:10 | [post] self [@x] | semmle.label | [post] self [@x] | | view2.rb:7:14:7:14 | x | semmle.label | x | @@ -100,8 +100,8 @@ nodes subpaths | main.rb:4:26:4:26 | x | view1.rb:5:20:5:20 | x | view1.rb:6:9:6:10 | [post] self [@x] | main.rb:4:16:4:27 | call to new [@x] | | main.rb:16:26:16:26 | x | view3.rb:2:20:2:20 | x | view3.rb:3:9:3:10 | [post] self [@x] | main.rb:16:16:16:27 | call to new [@x] | -| view1.html.erb:6:5:6:13 | call to source | view1.rb:13:13:13:13 | x | view1.rb:13:5:15:7 | self in set [Return] [@x] | view1.html.erb:6:1:6:14 | [post] self [@x] | -| view2.html.erb:3:5:3:13 | call to source | view2.rb:6:13:6:13 | x | view2.rb:6:5:8:7 | self in set [Return] [@x] | view2.html.erb:3:1:3:14 | [post] self [@x] | +| view1.html.erb:6:5:6:13 | call to source | view1.rb:13:13:13:13 | x | view1.rb:13:5:15:7 | self in set [Reverse] [@x] | view1.html.erb:6:1:6:14 | [post] self [@x] | +| view2.html.erb:3:5:3:13 | call to source | view2.rb:6:13:6:13 | x | view2.rb:6:5:8:7 | self in set [Reverse] [@x] | view2.html.erb:3:1:3:14 | [post] self [@x] | | view3.html.erb:3:6:3:8 | self [@x] | view3.rb:6:5:8:7 | self in get [@x] | view3.rb:7:9:7:10 | @x | view3.html.erb:3:6:3:8 | call to get | testFailures #select diff --git a/ruby/ql/test/library-tests/dataflow/global/Flow.expected b/ruby/ql/test/library-tests/dataflow/global/Flow.expected index 1bdf43dbb644b..824c3db4dcfac 100644 --- a/ruby/ql/test/library-tests/dataflow/global/Flow.expected +++ b/ruby/ql/test/library-tests/dataflow/global/Flow.expected @@ -33,7 +33,7 @@ edges | captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | provenance | | | captured_variables.rb:51:9:51:16 | call to taint | captured_variables.rb:49:16:52:3 | [post] do ... end [captured x] | provenance | heuristic-callback | | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:58:18:58:18 | x | provenance | | -| captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | provenance | | +| captured_variables.rb:58:9:58:14 | [post] self [@field] | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | provenance | | | captured_variables.rb:58:18:58:18 | x | captured_variables.rb:58:9:58:14 | [post] self [@field] | provenance | | | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:16:61:21 | self [@field] | provenance | | | captured_variables.rb:61:16:61:21 | @field | captured_variables.rb:61:9:61:21 | return | provenance | | @@ -98,8 +98,8 @@ edges | captured_variables.rb:168:18:170:11 | do ... end [captured self, @x] | captured_variables.rb:163:5:165:7 | &block [captured self, @x] | provenance | | | captured_variables.rb:169:18:169:19 | self [@x] | captured_variables.rb:169:18:169:19 | @x | provenance | | | captured_variables.rb:174:1:174:24 | call to new [@x] | captured_variables.rb:167:5:171:7 | self in baz [@x] | provenance | | -| captured_variables.rb:177:5:179:7 | self in foo [Return] [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | provenance | | -| captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:177:5:179:7 | self in foo [Return] [@x] | provenance | | +| captured_variables.rb:177:5:179:7 | self in foo [Reverse] [@x] | captured_variables.rb:193:1:193:1 | [post] c [@x] | provenance | | +| captured_variables.rb:178:9:178:10 | [post] self [@x] | captured_variables.rb:177:5:179:7 | self in foo [Reverse] [@x] | provenance | | | captured_variables.rb:178:14:178:22 | call to taint | captured_variables.rb:178:9:178:10 | [post] self [@x] | provenance | | | captured_variables.rb:181:5:183:7 | &block [captured self, @x] | captured_variables.rb:187:18:187:19 | self [@x] | provenance | | | captured_variables.rb:185:5:189:7 | self in baz [@x] | captured_variables.rb:186:18:188:11 | do ... end [captured self, @x] | provenance | | @@ -114,7 +114,7 @@ edges | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:223:13:223:13 | x | provenance | | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | provenance | | | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:11:18:11:18 | x | provenance | | -| instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | provenance | | +| instance_variables.rb:11:9:11:14 | [post] self [@field] | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | provenance | | | instance_variables.rb:11:18:11:18 | x | instance_variables.rb:11:9:11:14 | [post] self [@field] | provenance | | | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:16:14:21 | self [@field] | provenance | | | instance_variables.rb:14:16:14:21 | @field | instance_variables.rb:14:9:14:21 | return | provenance | | @@ -125,11 +125,11 @@ edges | instance_variables.rb:19:12:19:21 | call to taint | instance_variables.rb:19:5:19:8 | [post] self [@foo] | provenance | | | instance_variables.rb:20:10:20:13 | self [@foo] | instance_variables.rb:20:10:20:13 | @foo | provenance | | | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:18:23:22 | field | provenance | | -| instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:22:5:25:7 | self in initialize [Return] [@field] | provenance | | +| instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:22:5:25:7 | self in initialize [Reverse] [@field] | provenance | | | instance_variables.rb:23:18:23:22 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | provenance | | | instance_variables.rb:24:9:24:17 | call to taint | instance_variables.rb:28:9:28:25 | call to initialize | provenance | | | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:28:20:28:24 | field | provenance | | -| instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:27:5:29:7 | self in call_initialize [Return] [@field] | provenance | | +| instance_variables.rb:28:9:28:25 | [post] self [@field] | instance_variables.rb:27:5:29:7 | self in call_initialize [Reverse] [@field] | provenance | | | instance_variables.rb:28:9:28:25 | call to initialize | instance_variables.rb:119:6:119:37 | call to call_initialize | provenance | | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | provenance | | | instance_variables.rb:28:20:28:24 | field | instance_variables.rb:28:9:28:25 | [post] self [@field] | provenance | | @@ -221,10 +221,10 @@ edges | instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | provenance | | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | provenance | | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:97:6:97:20 | call to get_field | provenance | | -| instance_variables.rb:99:18:99:18 | x [Return] [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | provenance | | -| instance_variables.rb:99:18:99:18 | x [Return] [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | provenance | | -| instance_variables.rb:99:18:99:18 | x [Return] [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | provenance | | -| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:99:18:99:18 | x [Return] [@field] | provenance | | +| instance_variables.rb:99:18:99:18 | x [Reverse] [@field] | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | provenance | | +| instance_variables.rb:99:18:99:18 | x [Reverse] [@field] | instance_variables.rb:108:15:108:19 | [post] foo12 [@field] | provenance | | +| instance_variables.rb:99:18:99:18 | x [Reverse] [@field] | instance_variables.rb:113:22:113:26 | [post] foo13 [@field] | provenance | | +| instance_variables.rb:100:5:100:5 | [post] x [@field] | instance_variables.rb:99:18:99:18 | x [Reverse] [@field] | provenance | | | instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | provenance | | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | provenance | | | instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:100:5:100:5 | [post] x [@field] | provenance | | @@ -294,7 +294,7 @@ nodes | captured_variables.rb:50:10:50:10 | x | semmle.label | x | | captured_variables.rb:51:9:51:16 | call to taint | semmle.label | call to taint | | captured_variables.rb:54:6:54:6 | x | semmle.label | x | -| captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | semmle.label | self in set_field [Return] [@field] | +| captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | semmle.label | self in set_field [Reverse] [@field] | | captured_variables.rb:57:19:57:19 | x | semmle.label | x | | captured_variables.rb:58:9:58:14 | [post] self [@field] | semmle.label | [post] self [@field] | | captured_variables.rb:58:18:58:18 | x | semmle.label | x | @@ -355,7 +355,7 @@ nodes | captured_variables.rb:169:18:169:19 | @x | semmle.label | @x | | captured_variables.rb:169:18:169:19 | self [@x] | semmle.label | self [@x] | | captured_variables.rb:174:1:174:24 | call to new [@x] | semmle.label | call to new [@x] | -| captured_variables.rb:177:5:179:7 | self in foo [Return] [@x] | semmle.label | self in foo [Return] [@x] | +| captured_variables.rb:177:5:179:7 | self in foo [Reverse] [@x] | semmle.label | self in foo [Reverse] [@x] | | captured_variables.rb:178:9:178:10 | [post] self [@x] | semmle.label | [post] self [@x] | | captured_variables.rb:178:14:178:22 | call to taint | semmle.label | call to taint | | captured_variables.rb:181:5:183:7 | &block [captured self, @x] | semmle.label | &block [captured self, @x] | @@ -374,7 +374,7 @@ nodes | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | semmle.label | [post] fn1 [captured y] | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | semmle.label | fn1 [captured x] | | captured_variables.rb:227:10:227:10 | y | semmle.label | y | -| instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | semmle.label | self in set_field [Return] [@field] | +| instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | semmle.label | self in set_field [Reverse] [@field] | | instance_variables.rb:10:19:10:19 | x | semmle.label | x | | instance_variables.rb:11:9:11:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:11:18:11:18 | x | semmle.label | x | @@ -388,12 +388,12 @@ nodes | instance_variables.rb:19:12:19:21 | call to taint | semmle.label | call to taint | | instance_variables.rb:20:10:20:13 | @foo | semmle.label | @foo | | instance_variables.rb:20:10:20:13 | self [@foo] | semmle.label | self [@foo] | -| instance_variables.rb:22:5:25:7 | self in initialize [Return] [@field] | semmle.label | self in initialize [Return] [@field] | +| instance_variables.rb:22:5:25:7 | self in initialize [Reverse] [@field] | semmle.label | self in initialize [Reverse] [@field] | | instance_variables.rb:22:20:22:24 | field | semmle.label | field | | instance_variables.rb:23:9:23:14 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:23:18:23:22 | field | semmle.label | field | | instance_variables.rb:24:9:24:17 | call to taint | semmle.label | call to taint | -| instance_variables.rb:27:5:29:7 | self in call_initialize [Return] [@field] | semmle.label | self in call_initialize [Return] [@field] | +| instance_variables.rb:27:5:29:7 | self in call_initialize [Reverse] [@field] | semmle.label | self in call_initialize [Reverse] [@field] | | instance_variables.rb:27:25:27:29 | field | semmle.label | field | | instance_variables.rb:28:9:28:25 | [post] self [@field] | semmle.label | [post] self [@field] | | instance_variables.rb:28:9:28:25 | call to initialize | semmle.label | call to initialize | @@ -457,7 +457,7 @@ nodes | instance_variables.rb:96:6:96:19 | call to get_field | semmle.label | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | semmle.label | foo10 [@field] | | instance_variables.rb:97:6:97:20 | call to get_field | semmle.label | call to get_field | -| instance_variables.rb:99:18:99:18 | x [Return] [@field] | semmle.label | x [Return] [@field] | +| instance_variables.rb:99:18:99:18 | x [Reverse] [@field] | semmle.label | x [Reverse] [@field] | | instance_variables.rb:100:5:100:5 | [post] x [@field] | semmle.label | [post] x [@field] | | instance_variables.rb:100:17:100:25 | call to taint | semmle.label | call to taint | | instance_variables.rb:104:14:104:18 | [post] foo11 [@field] | semmle.label | [post] foo11 [@field] | @@ -485,21 +485,21 @@ nodes subpaths | captured_variables.rb:20:25:20:34 | call to taint | captured_variables.rb:15:28:15:28 | x | captured_variables.rb:16:5:18:5 | -> { ... } [captured x] | captured_variables.rb:20:2:20:34 | call to capture_escape_return1 [captured x] | | captured_variables.rb:27:48:27:57 | call to taint | captured_variables.rb:22:28:22:28 | x | captured_variables.rb:23:5:25:5 | -> { ... } [captured x] | captured_variables.rb:27:25:27:57 | call to capture_escape_return2 [captured x] | -| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | -| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | +| captured_variables.rb:66:15:66:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | captured_variables.rb:66:1:66:3 | [post] foo [@field] | | captured_variables.rb:68:10:68:12 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:68:10:68:22 | call to get_field | | captured_variables.rb:68:10:68:12 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:68:10:68:22 | call to get_field | -| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | -| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | +| captured_variables.rb:69:19:69:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | +| captured_variables.rb:69:19:69:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | captured_variables.rb:69:5:69:7 | [post] foo [@field] | | captured_variables.rb:72:6:72:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | | captured_variables.rb:72:6:72:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:72:6:72:18 | call to get_field | -| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | -| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | +| captured_variables.rb:79:23:79:30 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | +| captured_variables.rb:79:23:79:30 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | captured_variables.rb:79:9:79:11 | [post] foo [@field] | | captured_variables.rb:83:6:83:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | | captured_variables.rb:83:6:83:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | captured_variables.rb:83:6:83:18 | call to get_field | | captured_variables.rb:98:13:98:20 | call to taint | captured_variables.rb:93:17:93:17 | x | captured_variables.rb:94:5:96:5 | -> { ... } [captured x] | captured_variables.rb:98:1:98:21 | call to capture_arg [captured x] | | captured_variables.rb:226:5:226:7 | fn1 [captured x] | captured_variables.rb:223:13:223:13 | x | captured_variables.rb:223:13:223:13 | x | captured_variables.rb:226:5:226:7 | [post] fn1 [captured y] | -| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:22:5:25:7 | self in initialize [Return] [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | +| instance_variables.rb:28:20:28:24 | field | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:22:5:25:7 | self in initialize [Reverse] [@field] | instance_variables.rb:28:9:28:25 | [post] self [@field] | | instance_variables.rb:33:13:33:13 | x | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:33:9:33:14 | call to new [@field] | | instance_variables.rb:36:10:36:23 | call to new [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | | instance_variables.rb:36:10:36:23 | call to new [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:36:10:36:33 | call to get_field | @@ -507,48 +507,48 @@ subpaths | instance_variables.rb:39:6:39:23 | call to bar [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | | instance_variables.rb:39:6:39:23 | call to bar [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:39:6:39:33 | call to get_field | | instance_variables.rb:39:14:39:22 | call to taint | instance_variables.rb:31:18:31:18 | x | instance_variables.rb:33:9:33:14 | call to new [@field] | instance_variables.rb:39:6:39:23 | call to bar [@field] | -| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | -| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | +| instance_variables.rb:54:15:54:23 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | +| instance_variables.rb:54:15:54:23 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:54:1:54:3 | [post] foo [@field] | | instance_variables.rb:55:6:55:8 | foo [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | | instance_variables.rb:55:6:55:8 | foo [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:55:6:55:18 | call to get_field | -| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | -| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | +| instance_variables.rb:58:15:58:22 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | +| instance_variables.rb:58:15:58:22 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:58:1:58:3 | [post] bar [@field] | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:59:6:59:8 | bar [@field] | instance_variables.rb:16:5:18:7 | self in inc_field [@field] | instance_variables.rb:17:9:17:14 | [post] self [@field] | instance_variables.rb:59:6:59:18 | call to inc_field | | instance_variables.rb:67:6:67:9 | foo2 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | | instance_variables.rb:67:6:67:9 | foo2 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:67:6:67:19 | call to get_field | -| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | -| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | -| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | -| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | +| instance_variables.rb:70:16:70:24 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | +| instance_variables.rb:70:16:70:24 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:70:1:70:4 | [post] foo3 [@field] | +| instance_variables.rb:78:18:78:26 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | +| instance_variables.rb:78:18:78:26 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:78:2:78:5 | [post] foo5 [@field] | | instance_variables.rb:79:6:79:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | | instance_variables.rb:79:6:79:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:79:6:79:19 | call to get_field | -| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | -| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | +| instance_variables.rb:82:32:82:40 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | +| instance_variables.rb:82:32:82:40 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:82:15:82:18 | [post] foo6 [@field] | | instance_variables.rb:83:6:83:9 | foo3 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | | instance_variables.rb:83:6:83:9 | foo3 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:83:6:83:19 | call to get_field | | instance_variables.rb:84:6:84:9 | foo5 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | | instance_variables.rb:84:6:84:9 | foo5 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:84:6:84:19 | call to get_field | | instance_variables.rb:85:6:85:9 | foo6 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | | instance_variables.rb:85:6:85:9 | foo6 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:85:6:85:19 | call to get_field | -| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | -| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:89:15:89:18 | [post] foo7 [@field] | +| instance_variables.rb:89:45:89:53 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:89:25:89:28 | [post] foo8 [@field] | | instance_variables.rb:90:6:90:9 | foo7 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | | instance_variables.rb:90:6:90:9 | foo7 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:90:6:90:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | | instance_variables.rb:91:6:91:9 | foo8 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:91:6:91:19 | call to get_field | -| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | -| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:95:22:95:25 | [post] foo9 [@field] | +| instance_variables.rb:95:53:95:61 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:95:32:95:36 | [post] foo10 [@field] | | instance_variables.rb:96:6:96:9 | foo9 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | | instance_variables.rb:96:6:96:9 | foo9 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:96:6:96:19 | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | | instance_variables.rb:97:6:97:10 | foo10 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:97:6:97:20 | call to get_field | -| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Return] [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | -| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Return] [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | +| instance_variables.rb:100:17:100:25 | call to taint | captured_variables.rb:57:19:57:19 | x | captured_variables.rb:57:5:59:7 | self in set_field [Reverse] [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | +| instance_variables.rb:100:17:100:25 | call to taint | instance_variables.rb:10:19:10:19 | x | instance_variables.rb:10:5:12:7 | self in set_field [Reverse] [@field] | instance_variables.rb:100:5:100:5 | [post] x [@field] | | instance_variables.rb:105:6:105:10 | foo11 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:105:6:105:10 | foo11 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:105:6:105:20 | call to get_field | | instance_variables.rb:109:6:109:10 | foo12 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:109:6:109:20 | call to get_field | @@ -558,7 +558,7 @@ subpaths | instance_variables.rb:116:17:116:25 | call to taint | instance_variables.rb:22:20:22:24 | field | instance_variables.rb:23:9:23:14 | [post] self [@field] | instance_variables.rb:116:9:116:26 | call to new [@field] | | instance_variables.rb:117:6:117:10 | foo15 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | | instance_variables.rb:117:6:117:10 | foo15 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:117:6:117:20 | call to get_field | -| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:27:5:29:7 | self in call_initialize [Return] [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | +| instance_variables.rb:119:28:119:36 | call to taint | instance_variables.rb:27:25:27:29 | field | instance_variables.rb:27:5:29:7 | self in call_initialize [Reverse] [@field] | instance_variables.rb:119:6:119:10 | [post] foo16 [@field] | | instance_variables.rb:120:6:120:10 | foo16 [@field] | captured_variables.rb:60:5:62:7 | self in get_field [@field] | captured_variables.rb:61:9:61:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | | instance_variables.rb:120:6:120:10 | foo16 [@field] | instance_variables.rb:13:5:15:7 | self in get_field [@field] | instance_variables.rb:14:9:14:21 | return | instance_variables.rb:120:6:120:20 | call to get_field | testFailures diff --git a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected index f665080a3293c..378cb1b23e663 100644 --- a/ruby/ql/test/library-tests/dataflow/params/params-flow.expected +++ b/ruby/ql/test/library-tests/dataflow/params/params-flow.expected @@ -158,16 +158,88 @@ edges | params_flow.rb:137:10:137:43 | * ... [element 1] | params_flow.rb:133:14:133:18 | *args [element 1] | provenance | | | params_flow.rb:137:11:137:43 | call to [] [element 1] | params_flow.rb:137:10:137:43 | * ... [element 1] | provenance | | | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:137:11:137:43 | call to [] [element 1] | provenance | | +| params_flow.rb:139:25:139:32 | **kwargs [element :p2] | params_flow.rb:140:27:140:32 | kwargs [element :p2] | provenance | | +| params_flow.rb:140:5:140:10 | [post] kwargs [element :p1, element 0] | params_flow.rb:139:25:139:32 | **kwargs [Reverse] [element :p1, element 0] | provenance | | +| params_flow.rb:140:5:140:15 | ...[...] [Reverse] [element 0] | params_flow.rb:140:5:140:10 | [post] kwargs [element :p1, element 0] | provenance | | +| params_flow.rb:140:5:140:15 | [post] ...[...] [element 0] | params_flow.rb:140:5:140:15 | ...[...] [Reverse] [element 0] | provenance | | +| params_flow.rb:140:27:140:32 | kwargs [element :p2] | params_flow.rb:140:27:140:37 | ...[...] | provenance | | +| params_flow.rb:140:27:140:37 | ...[...] | params_flow.rb:140:5:140:15 | [post] ...[...] [element 0] | provenance | | +| params_flow.rb:143:1:143:6 | kwargs [element :p2] | params_flow.rb:145:23:145:28 | kwargs [element :p2] | provenance | | +| params_flow.rb:143:10:143:34 | call to [] [element :p2] | params_flow.rb:143:1:143:6 | kwargs [element :p2] | provenance | | +| params_flow.rb:143:24:143:32 | call to taint | params_flow.rb:143:10:143:34 | call to [] [element :p2] | provenance | | +| params_flow.rb:145:21:145:28 | ** ... [Reverse] [element :p1, element 0] | params_flow.rb:145:23:145:28 | [post] kwargs [element :p1, element 0] | provenance | | +| params_flow.rb:145:21:145:28 | ** ... [element :p2] | params_flow.rb:139:25:139:32 | **kwargs [element :p2] | provenance | | +| params_flow.rb:145:21:145:28 | ** ... [element :p2] | params_flow.rb:145:21:145:28 | [post] ** ... [element :p1, element 0] | provenance | | +| params_flow.rb:145:21:145:28 | [post] ** ... [element :p1, element 0] | params_flow.rb:145:21:145:28 | ** ... [Reverse] [element :p1, element 0] | provenance | | +| params_flow.rb:145:23:145:28 | [post] kwargs [element :p1, element 0] | params_flow.rb:146:6:146:11 | kwargs [element :p1, element 0] | provenance | | +| params_flow.rb:145:23:145:28 | kwargs [element :p2] | params_flow.rb:145:21:145:28 | ** ... [element :p2] | provenance | | +| params_flow.rb:146:6:146:11 | kwargs [element :p1, element 0] | params_flow.rb:146:6:146:16 | ...[...] [element 0] | provenance | | +| params_flow.rb:146:6:146:16 | ...[...] [element 0] | params_flow.rb:146:6:146:19 | ...[...] | provenance | | | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | provenance | | -| params_flow.rb:154:5:154:6 | [post] p1 [element 0] | params_flow.rb:153:23:153:24 | p1 [Return] [element 0] | provenance | | +| params_flow.rb:153:28:153:29 | p2 | params_flow.rb:154:18:154:19 | p2 | provenance | | +| params_flow.rb:154:5:154:6 | [post] p1 [element 0] | params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | provenance | | +| params_flow.rb:154:5:154:6 | [post] p1 [element 0] | params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | provenance | | +| params_flow.rb:154:18:154:19 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | provenance | | | params_flow.rb:154:18:154:19 | p2 | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | provenance | | +| params_flow.rb:157:1:157:6 | kwargs [element :p2] | params_flow.rb:159:21:159:26 | kwargs [element :p2] | provenance | | +| params_flow.rb:157:10:157:34 | call to [] [element :p2] | params_flow.rb:157:1:157:6 | kwargs [element :p2] | provenance | | +| params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:157:10:157:34 | call to [] [element :p2] | provenance | | +| params_flow.rb:159:19:159:26 | ** ... [Reverse] [element :p1, element 0] | params_flow.rb:159:21:159:26 | [post] kwargs [element :p1, element 0] | provenance | | +| params_flow.rb:159:19:159:26 | ** ... [Reverse] [element, element 0] | params_flow.rb:159:21:159:26 | [post] kwargs [element, element 0] | provenance | | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | params_flow.rb:153:28:153:29 | p2 | provenance | | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | params_flow.rb:159:19:159:26 | [post] ** ... [element :p1, element 0] | provenance | | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | params_flow.rb:159:19:159:26 | [post] ** ... [element, element 0] | provenance | | +| params_flow.rb:159:19:159:26 | [post] ** ... [element :p1, element 0] | params_flow.rb:159:19:159:26 | ** ... [Reverse] [element :p1, element 0] | provenance | | +| params_flow.rb:159:19:159:26 | [post] ** ... [element, element 0] | params_flow.rb:159:19:159:26 | ** ... [Reverse] [element, element 0] | provenance | | +| params_flow.rb:159:21:159:26 | [post] kwargs [element :p1, element 0] | params_flow.rb:160:6:160:11 | kwargs [element :p1, element 0] | provenance | | +| params_flow.rb:159:21:159:26 | [post] kwargs [element, element 0] | params_flow.rb:160:6:160:11 | kwargs [element, element 0] | provenance | | +| params_flow.rb:159:21:159:26 | kwargs [element :p2] | params_flow.rb:159:19:159:26 | ** ... [element :p2] | provenance | | +| params_flow.rb:160:6:160:11 | kwargs [element :p1, element 0] | params_flow.rb:160:6:160:16 | ...[...] [element 0] | provenance | | +| params_flow.rb:160:6:160:11 | kwargs [element, element 0] | params_flow.rb:160:6:160:16 | ...[...] [element 0] | provenance | | +| params_flow.rb:160:6:160:16 | ...[...] [element 0] | params_flow.rb:160:6:160:19 | ...[...] | provenance | | | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | params_flow.rb:165:6:165:7 | p1 [element 0] | provenance | | | params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | provenance | | | params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | provenance | | | params_flow.rb:165:6:165:7 | p1 [element 0] | params_flow.rb:165:6:165:10 | ...[...] | provenance | | +| params_flow.rb:167:21:167:28 | *posargs [element 1] | params_flow.rb:168:26:168:32 | posargs [element 1] | provenance | | +| params_flow.rb:168:5:168:11 | [post] posargs [element 0, element 0] | params_flow.rb:167:21:167:28 | *posargs [Reverse] [element 0, element 0] | provenance | | +| params_flow.rb:168:5:168:14 | ...[...] [Reverse] [element 0] | params_flow.rb:168:5:168:11 | [post] posargs [element 0, element 0] | provenance | | +| params_flow.rb:168:5:168:14 | [post] ...[...] [element 0] | params_flow.rb:168:5:168:14 | ...[...] [Reverse] [element 0] | provenance | | +| params_flow.rb:168:26:168:32 | posargs [element 1] | params_flow.rb:168:26:168:35 | ...[...] | provenance | | +| params_flow.rb:168:26:168:35 | ...[...] | params_flow.rb:168:5:168:14 | [post] ...[...] [element 0] | provenance | | +| params_flow.rb:171:1:171:7 | posargs [element 1] | params_flow.rb:173:18:173:24 | posargs [element 1] | provenance | | +| params_flow.rb:171:11:171:27 | call to [] [element 1] | params_flow.rb:171:1:171:7 | posargs [element 1] | provenance | | +| params_flow.rb:171:17:171:25 | call to taint | params_flow.rb:171:11:171:27 | call to [] [element 1] | provenance | | +| params_flow.rb:173:17:173:24 | * ... [Reverse] [element 0, element 0] | params_flow.rb:173:18:173:24 | [post] posargs [element 0, element 0] | provenance | | +| params_flow.rb:173:17:173:24 | * ... [element 1] | params_flow.rb:167:21:167:28 | *posargs [element 1] | provenance | | +| params_flow.rb:173:17:173:24 | * ... [element 1] | params_flow.rb:173:17:173:24 | [post] * ... [element 0, element 0] | provenance | | +| params_flow.rb:173:17:173:24 | [post] * ... [element 0, element 0] | params_flow.rb:173:17:173:24 | * ... [Reverse] [element 0, element 0] | provenance | | +| params_flow.rb:173:18:173:24 | [post] posargs [element 0, element 0] | params_flow.rb:174:6:174:12 | posargs [element 0, element 0] | provenance | | +| params_flow.rb:173:18:173:24 | posargs [element 1] | params_flow.rb:173:17:173:24 | * ... [element 1] | provenance | | +| params_flow.rb:174:6:174:12 | posargs [element 0, element 0] | params_flow.rb:174:6:174:15 | ...[...] [element 0] | provenance | | +| params_flow.rb:174:6:174:15 | ...[...] [element 0] | params_flow.rb:174:6:174:18 | ...[...] | provenance | | +| params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | provenance | | | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:182:18:182:19 | p2 | provenance | | -| params_flow.rb:182:5:182:6 | [post] p1 [element 0] | params_flow.rb:181:24:181:25 | p1 [Return] [element 0] | provenance | | +| params_flow.rb:182:5:182:6 | [post] p1 [element 0] | params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | provenance | | +| params_flow.rb:182:5:182:6 | [post] p1 [element 0] | params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | provenance | | | params_flow.rb:182:18:182:19 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | provenance | | +| params_flow.rb:182:18:182:19 | p2 | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | provenance | | +| params_flow.rb:185:1:185:4 | args [element 1] | params_flow.rb:187:21:187:24 | args [element 1] | provenance | | +| params_flow.rb:185:8:185:24 | call to [] [element 1] | params_flow.rb:185:1:185:4 | args [element 1] | provenance | | +| params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:185:8:185:24 | call to [] [element 1] | provenance | | +| params_flow.rb:187:20:187:24 | * ... [Reverse] [element 0, element 0] | params_flow.rb:187:21:187:24 | [post] args [element 0, element 0] | provenance | | +| params_flow.rb:187:20:187:24 | * ... [Reverse] [element, element 0] | params_flow.rb:187:21:187:24 | [post] args [element, element 0] | provenance | | +| params_flow.rb:187:20:187:24 | * ... [element 1] | params_flow.rb:181:28:181:29 | p2 | provenance | | +| params_flow.rb:187:20:187:24 | * ... [element 1] | params_flow.rb:187:20:187:24 | [post] * ... [element 0, element 0] | provenance | | +| params_flow.rb:187:20:187:24 | * ... [element 1] | params_flow.rb:187:20:187:24 | [post] * ... [element, element 0] | provenance | | +| params_flow.rb:187:20:187:24 | [post] * ... [element 0, element 0] | params_flow.rb:187:20:187:24 | * ... [Reverse] [element 0, element 0] | provenance | | +| params_flow.rb:187:20:187:24 | [post] * ... [element, element 0] | params_flow.rb:187:20:187:24 | * ... [Reverse] [element, element 0] | provenance | | +| params_flow.rb:187:21:187:24 | [post] args [element 0, element 0] | params_flow.rb:188:6:188:9 | args [element 0, element 0] | provenance | | +| params_flow.rb:187:21:187:24 | [post] args [element, element 0] | params_flow.rb:188:6:188:9 | args [element, element 0] | provenance | | +| params_flow.rb:187:21:187:24 | args [element 1] | params_flow.rb:187:20:187:24 | * ... [element 1] | provenance | | +| params_flow.rb:188:6:188:9 | args [element 0, element 0] | params_flow.rb:188:6:188:12 | ...[...] [element 0] | provenance | | +| params_flow.rb:188:6:188:9 | args [element, element 0] | params_flow.rb:188:6:188:12 | ...[...] [element 0] | provenance | | +| params_flow.rb:188:6:188:12 | ...[...] [element 0] | params_flow.rb:188:6:188:15 | ...[...] | provenance | | | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | params_flow.rb:193:6:193:7 | p1 [element 0] | provenance | | | params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | provenance | | | params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | provenance | | @@ -353,26 +425,110 @@ nodes | params_flow.rb:137:10:137:43 | * ... [element 1] | semmle.label | * ... [element 1] | | params_flow.rb:137:11:137:43 | call to [] [element 1] | semmle.label | call to [] [element 1] | | params_flow.rb:137:23:137:31 | call to taint | semmle.label | call to taint | -| params_flow.rb:153:23:153:24 | p1 [Return] [element 0] | semmle.label | p1 [Return] [element 0] | +| params_flow.rb:139:25:139:32 | **kwargs [Reverse] [element :p1, element 0] | semmle.label | **kwargs [Reverse] [element :p1, element 0] | +| params_flow.rb:139:25:139:32 | **kwargs [element :p2] | semmle.label | **kwargs [element :p2] | +| params_flow.rb:140:5:140:10 | [post] kwargs [element :p1, element 0] | semmle.label | [post] kwargs [element :p1, element 0] | +| params_flow.rb:140:5:140:15 | ...[...] [Reverse] [element 0] | semmle.label | ...[...] [Reverse] [element 0] | +| params_flow.rb:140:5:140:15 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | +| params_flow.rb:140:27:140:32 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:140:27:140:37 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:143:1:143:6 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:143:10:143:34 | call to [] [element :p2] | semmle.label | call to [] [element :p2] | +| params_flow.rb:143:24:143:32 | call to taint | semmle.label | call to taint | +| params_flow.rb:145:21:145:28 | ** ... [Reverse] [element :p1, element 0] | semmle.label | ** ... [Reverse] [element :p1, element 0] | +| params_flow.rb:145:21:145:28 | ** ... [element :p2] | semmle.label | ** ... [element :p2] | +| params_flow.rb:145:21:145:28 | [post] ** ... [element :p1, element 0] | semmle.label | [post] ** ... [element :p1, element 0] | +| params_flow.rb:145:23:145:28 | [post] kwargs [element :p1, element 0] | semmle.label | [post] kwargs [element :p1, element 0] | +| params_flow.rb:145:23:145:28 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:146:6:146:11 | kwargs [element :p1, element 0] | semmle.label | kwargs [element :p1, element 0] | +| params_flow.rb:146:6:146:16 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| params_flow.rb:146:6:146:19 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | semmle.label | p1 [Reverse] [element 0] | +| params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | semmle.label | p1 [Reverse] [element 0] | +| params_flow.rb:153:28:153:29 | p2 | semmle.label | p2 | | params_flow.rb:153:28:153:29 | p2 | semmle.label | p2 | | params_flow.rb:154:5:154:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:154:5:154:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:154:18:154:19 | p2 | semmle.label | p2 | | params_flow.rb:154:18:154:19 | p2 | semmle.label | p2 | +| params_flow.rb:157:1:157:6 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:157:10:157:34 | call to [] [element :p2] | semmle.label | call to [] [element :p2] | +| params_flow.rb:157:24:157:32 | call to taint | semmle.label | call to taint | +| params_flow.rb:159:19:159:26 | ** ... [Reverse] [element :p1, element 0] | semmle.label | ** ... [Reverse] [element :p1, element 0] | +| params_flow.rb:159:19:159:26 | ** ... [Reverse] [element, element 0] | semmle.label | ** ... [Reverse] [element, element 0] | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | semmle.label | ** ... [element :p2] | +| params_flow.rb:159:19:159:26 | [post] ** ... [element :p1, element 0] | semmle.label | [post] ** ... [element :p1, element 0] | +| params_flow.rb:159:19:159:26 | [post] ** ... [element, element 0] | semmle.label | [post] ** ... [element, element 0] | +| params_flow.rb:159:21:159:26 | [post] kwargs [element :p1, element 0] | semmle.label | [post] kwargs [element :p1, element 0] | +| params_flow.rb:159:21:159:26 | [post] kwargs [element, element 0] | semmle.label | [post] kwargs [element, element 0] | +| params_flow.rb:159:21:159:26 | kwargs [element :p2] | semmle.label | kwargs [element :p2] | +| params_flow.rb:160:6:160:11 | kwargs [element :p1, element 0] | semmle.label | kwargs [element :p1, element 0] | +| params_flow.rb:160:6:160:11 | kwargs [element, element 0] | semmle.label | kwargs [element, element 0] | +| params_flow.rb:160:6:160:16 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| params_flow.rb:160:6:160:19 | ...[...] | semmle.label | ...[...] | | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | | params_flow.rb:164:31:164:39 | call to taint | semmle.label | call to taint | | params_flow.rb:165:6:165:7 | p1 [element 0] | semmle.label | p1 [element 0] | | params_flow.rb:165:6:165:10 | ...[...] | semmle.label | ...[...] | -| params_flow.rb:181:24:181:25 | p1 [Return] [element 0] | semmle.label | p1 [Return] [element 0] | +| params_flow.rb:167:21:167:28 | *posargs [Reverse] [element 0, element 0] | semmle.label | *posargs [Reverse] [element 0, element 0] | +| params_flow.rb:167:21:167:28 | *posargs [element 1] | semmle.label | *posargs [element 1] | +| params_flow.rb:168:5:168:11 | [post] posargs [element 0, element 0] | semmle.label | [post] posargs [element 0, element 0] | +| params_flow.rb:168:5:168:14 | ...[...] [Reverse] [element 0] | semmle.label | ...[...] [Reverse] [element 0] | +| params_flow.rb:168:5:168:14 | [post] ...[...] [element 0] | semmle.label | [post] ...[...] [element 0] | +| params_flow.rb:168:26:168:32 | posargs [element 1] | semmle.label | posargs [element 1] | +| params_flow.rb:168:26:168:35 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:171:1:171:7 | posargs [element 1] | semmle.label | posargs [element 1] | +| params_flow.rb:171:11:171:27 | call to [] [element 1] | semmle.label | call to [] [element 1] | +| params_flow.rb:171:17:171:25 | call to taint | semmle.label | call to taint | +| params_flow.rb:173:17:173:24 | * ... [Reverse] [element 0, element 0] | semmle.label | * ... [Reverse] [element 0, element 0] | +| params_flow.rb:173:17:173:24 | * ... [element 1] | semmle.label | * ... [element 1] | +| params_flow.rb:173:17:173:24 | [post] * ... [element 0, element 0] | semmle.label | [post] * ... [element 0, element 0] | +| params_flow.rb:173:18:173:24 | [post] posargs [element 0, element 0] | semmle.label | [post] posargs [element 0, element 0] | +| params_flow.rb:173:18:173:24 | posargs [element 1] | semmle.label | posargs [element 1] | +| params_flow.rb:174:6:174:12 | posargs [element 0, element 0] | semmle.label | posargs [element 0, element 0] | +| params_flow.rb:174:6:174:15 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| params_flow.rb:174:6:174:18 | ...[...] | semmle.label | ...[...] | +| params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | semmle.label | p1 [Reverse] [element 0] | +| params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | semmle.label | p1 [Reverse] [element 0] | +| params_flow.rb:181:28:181:29 | p2 | semmle.label | p2 | | params_flow.rb:181:28:181:29 | p2 | semmle.label | p2 | | params_flow.rb:182:5:182:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:182:5:182:6 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | +| params_flow.rb:182:18:182:19 | p2 | semmle.label | p2 | | params_flow.rb:182:18:182:19 | p2 | semmle.label | p2 | +| params_flow.rb:185:1:185:4 | args [element 1] | semmle.label | args [element 1] | +| params_flow.rb:185:8:185:24 | call to [] [element 1] | semmle.label | call to [] [element 1] | +| params_flow.rb:185:14:185:22 | call to taint | semmle.label | call to taint | +| params_flow.rb:187:20:187:24 | * ... [Reverse] [element 0, element 0] | semmle.label | * ... [Reverse] [element 0, element 0] | +| params_flow.rb:187:20:187:24 | * ... [Reverse] [element, element 0] | semmle.label | * ... [Reverse] [element, element 0] | +| params_flow.rb:187:20:187:24 | * ... [element 1] | semmle.label | * ... [element 1] | +| params_flow.rb:187:20:187:24 | [post] * ... [element 0, element 0] | semmle.label | [post] * ... [element 0, element 0] | +| params_flow.rb:187:20:187:24 | [post] * ... [element, element 0] | semmle.label | [post] * ... [element, element 0] | +| params_flow.rb:187:21:187:24 | [post] args [element 0, element 0] | semmle.label | [post] args [element 0, element 0] | +| params_flow.rb:187:21:187:24 | [post] args [element, element 0] | semmle.label | [post] args [element, element 0] | +| params_flow.rb:187:21:187:24 | args [element 1] | semmle.label | args [element 1] | +| params_flow.rb:188:6:188:9 | args [element 0, element 0] | semmle.label | args [element 0, element 0] | +| params_flow.rb:188:6:188:9 | args [element, element 0] | semmle.label | args [element, element 0] | +| params_flow.rb:188:6:188:12 | ...[...] [element 0] | semmle.label | ...[...] [element 0] | +| params_flow.rb:188:6:188:15 | ...[...] | semmle.label | ...[...] | | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | semmle.label | [post] p1 [element 0] | | params_flow.rb:192:24:192:32 | call to taint | semmle.label | call to taint | | params_flow.rb:193:6:193:7 | p1 [element 0] | semmle.label | p1 [element 0] | | params_flow.rb:193:6:193:10 | ...[...] | semmle.label | ...[...] | subpaths -| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:23:153:24 | p1 [Return] [element 0] | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | -| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:24:181:25 | p1 [Return] [element 0] | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | +| params_flow.rb:145:21:145:28 | ** ... [element :p2] | params_flow.rb:139:25:139:32 | **kwargs [element :p2] | params_flow.rb:139:25:139:32 | **kwargs [Reverse] [element :p1, element 0] | params_flow.rb:145:21:145:28 | [post] ** ... [element :p1, element 0] | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | params_flow.rb:159:19:159:26 | [post] ** ... [element :p1, element 0] | +| params_flow.rb:159:19:159:26 | ** ... [element :p2] | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | params_flow.rb:159:19:159:26 | [post] ** ... [element, element 0] | +| params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:153:28:153:29 | p2 | params_flow.rb:153:23:153:24 | p1 [Reverse] [element 0] | params_flow.rb:164:23:164:24 | [post] p1 [element 0] | +| params_flow.rb:173:17:173:24 | * ... [element 1] | params_flow.rb:167:21:167:28 | *posargs [element 1] | params_flow.rb:167:21:167:28 | *posargs [Reverse] [element 0, element 0] | params_flow.rb:173:17:173:24 | [post] * ... [element 0, element 0] | +| params_flow.rb:187:20:187:24 | * ... [element 1] | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | params_flow.rb:187:20:187:24 | [post] * ... [element 0, element 0] | +| params_flow.rb:187:20:187:24 | * ... [element 1] | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | params_flow.rb:187:20:187:24 | [post] * ... [element, element 0] | +| params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:181:28:181:29 | p2 | params_flow.rb:181:24:181:25 | p1 [Reverse] [element 0] | params_flow.rb:192:20:192:21 | [post] p1 [element 0] | testFailures +| params_flow.rb:146:6:146:19 | ...[...] | Fixed missing result: hasValueFlow=72 | +| params_flow.rb:160:6:160:19 | ...[...] | Fixed missing result: hasValueFlow=74 | +| params_flow.rb:174:6:174:18 | ...[...] | Fixed missing result: hasValueFlow=76 | +| params_flow.rb:188:6:188:15 | ...[...] | Fixed missing result: hasValueFlow=78 | #select | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:14:12:14:19 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:14:12:14:19 | call to taint | call to taint | | params_flow.rb:10:10:10:11 | p1 | params_flow.rb:44:12:44:20 | call to taint | params_flow.rb:10:10:10:11 | p1 | $@ | params_flow.rb:44:12:44:20 | call to taint | call to taint | @@ -424,5 +580,9 @@ testFailures | params_flow.rb:110:10:110:13 | ...[...] | params_flow.rb:114:44:114:52 | call to taint | params_flow.rb:110:10:110:13 | ...[...] | $@ | params_flow.rb:114:44:114:52 | call to taint | call to taint | | params_flow.rb:111:10:111:10 | c | params_flow.rb:114:58:114:66 | call to taint | params_flow.rb:111:10:111:10 | c | $@ | params_flow.rb:114:58:114:66 | call to taint | call to taint | | params_flow.rb:134:10:134:16 | ...[...] | params_flow.rb:137:23:137:31 | call to taint | params_flow.rb:134:10:134:16 | ...[...] | $@ | params_flow.rb:137:23:137:31 | call to taint | call to taint | +| params_flow.rb:146:6:146:19 | ...[...] | params_flow.rb:143:24:143:32 | call to taint | params_flow.rb:146:6:146:19 | ...[...] | $@ | params_flow.rb:143:24:143:32 | call to taint | call to taint | +| params_flow.rb:160:6:160:19 | ...[...] | params_flow.rb:157:24:157:32 | call to taint | params_flow.rb:160:6:160:19 | ...[...] | $@ | params_flow.rb:157:24:157:32 | call to taint | call to taint | | params_flow.rb:165:6:165:10 | ...[...] | params_flow.rb:164:31:164:39 | call to taint | params_flow.rb:165:6:165:10 | ...[...] | $@ | params_flow.rb:164:31:164:39 | call to taint | call to taint | +| params_flow.rb:174:6:174:18 | ...[...] | params_flow.rb:171:17:171:25 | call to taint | params_flow.rb:174:6:174:18 | ...[...] | $@ | params_flow.rb:171:17:171:25 | call to taint | call to taint | +| params_flow.rb:188:6:188:15 | ...[...] | params_flow.rb:185:14:185:22 | call to taint | params_flow.rb:188:6:188:15 | ...[...] | $@ | params_flow.rb:185:14:185:22 | call to taint | call to taint | | params_flow.rb:193:6:193:10 | ...[...] | params_flow.rb:192:24:192:32 | call to taint | params_flow.rb:193:6:193:10 | ...[...] | $@ | params_flow.rb:192:24:192:32 | call to taint | call to taint | diff --git a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected index b207b72994190..6b3bcb2e00bfc 100644 --- a/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected +++ b/ruby/ql/test/library-tests/frameworks/action_controller/params-flow.expected @@ -30,8 +30,8 @@ edges | filter_flow.rb:83:3:84:5 | self in b [@foo] | filter_flow.rb:86:3:88:5 | self in c [@foo] | provenance | | | filter_flow.rb:86:3:88:5 | self in c [@foo] | filter_flow.rb:87:11:87:14 | self [@foo] | provenance | | | filter_flow.rb:87:11:87:14 | self [@foo] | filter_flow.rb:87:11:87:14 | @foo | provenance | | -| filter_flow.rb:90:3:92:5 | self in taint_foo [Return] [@foo] | filter_flow.rb:80:5:80:8 | [post] self [@foo] | provenance | | -| filter_flow.rb:91:5:91:8 | [post] self [@foo] | filter_flow.rb:90:3:92:5 | self in taint_foo [Return] [@foo] | provenance | | +| filter_flow.rb:90:3:92:5 | self in taint_foo [Reverse] [@foo] | filter_flow.rb:80:5:80:8 | [post] self [@foo] | provenance | | +| filter_flow.rb:91:5:91:8 | [post] self [@foo] | filter_flow.rb:90:3:92:5 | self in taint_foo [Reverse] [@foo] | provenance | | | filter_flow.rb:91:12:91:17 | call to params | filter_flow.rb:91:12:91:23 | ...[...] | provenance | | | filter_flow.rb:91:12:91:23 | ...[...] | filter_flow.rb:91:5:91:8 | [post] self [@foo] | provenance | | | params_flow.rb:3:10:3:15 | call to params | params_flow.rb:3:10:3:19 | ...[...] | provenance | | @@ -141,7 +141,7 @@ nodes | filter_flow.rb:86:3:88:5 | self in c [@foo] | semmle.label | self in c [@foo] | | filter_flow.rb:87:11:87:14 | @foo | semmle.label | @foo | | filter_flow.rb:87:11:87:14 | self [@foo] | semmle.label | self [@foo] | -| filter_flow.rb:90:3:92:5 | self in taint_foo [Return] [@foo] | semmle.label | self in taint_foo [Return] [@foo] | +| filter_flow.rb:90:3:92:5 | self in taint_foo [Reverse] [@foo] | semmle.label | self in taint_foo [Reverse] [@foo] | | filter_flow.rb:91:5:91:8 | [post] self [@foo] | semmle.label | [post] self [@foo] | | filter_flow.rb:91:12:91:17 | call to params | semmle.label | call to params | | filter_flow.rb:91:12:91:23 | ...[...] | semmle.label | ...[...] | diff --git a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected index 954e0f92f6dce..65b0eeedf071b 100644 --- a/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected +++ b/swift/ql/test/library-tests/dataflow/dataflow/DataFlow.expected @@ -3,22 +3,15 @@ edges | file://:0:0:0:0 | .wrappedValue | test.swift:949:15:949:15 | x | provenance | | | file://:0:0:0:0 | .wrappedValue | test.swift:951:15:951:15 | x | provenance | | | file://:0:0:0:0 | KeyPathComponent [some:0] | test.swift:663:13:663:29 | exit #keyPath(...) [some:0] | provenance | | -| file://:0:0:0:0 | [post] self [v2, some:0] | file://:0:0:0:0 | self [Reverse] [v2, some:0] | provenance | | -| file://:0:0:0:0 | [post] self [v2] | file://:0:0:0:0 | self [Reverse] [v2] | provenance | | -| file://:0:0:0:0 | [post] self [v3] | file://:0:0:0:0 | self [Reverse] [v3] | provenance | | -| file://:0:0:0:0 | [post] self [v] | file://:0:0:0:0 | self [Reverse] [v] | provenance | | +| file://:0:0:0:0 | [post] self [v2, some:0] | test.swift:731:9:731:9 | self [Reverse] [v2, some:0] | provenance | | +| file://:0:0:0:0 | [post] self [v2] | test.swift:731:9:731:9 | self [Reverse] [v2] | provenance | | +| file://:0:0:0:0 | [post] self [v3] | test.swift:732:9:732:9 | self [Reverse] [v3] | provenance | | +| file://:0:0:0:0 | [post] self [v] | test.swift:815:7:815:7 | self [Reverse] [v] | provenance | | | file://:0:0:0:0 | [post] self [wrappedValue] | file://:0:0:0:0 | self [wrappedValue] | provenance | | -| file://:0:0:0:0 | [post] self [x, some:0] | file://:0:0:0:0 | self [Reverse] [x, some:0] | provenance | | -| file://:0:0:0:0 | [post] self [x] | file://:0:0:0:0 | self [Reverse] [x] | provenance | | -| file://:0:0:0:0 | [post] self [x] | file://:0:0:0:0 | self [Reverse] [x] | provenance | | -| file://:0:0:0:0 | self [Reverse] [a, x] | test.swift:185:7:185:7 | self [Return] [a, x] | provenance | | -| file://:0:0:0:0 | self [Reverse] [v2, some:0] | test.swift:731:9:731:9 | self [Return] [v2, some:0] | provenance | | -| file://:0:0:0:0 | self [Reverse] [v2] | test.swift:731:9:731:9 | self [Return] [v2] | provenance | | -| file://:0:0:0:0 | self [Reverse] [v3] | test.swift:732:9:732:9 | self [Return] [v3] | provenance | | -| file://:0:0:0:0 | self [Reverse] [v] | test.swift:815:7:815:7 | self [Return] [v] | provenance | | -| file://:0:0:0:0 | self [Reverse] [x, some:0] | test.swift:559:9:559:9 | self [Return] [x, some:0] | provenance | | -| file://:0:0:0:0 | self [Reverse] [x] | test.swift:163:7:163:7 | self [Return] [x] | provenance | | -| file://:0:0:0:0 | self [Reverse] [x] | test.swift:559:9:559:9 | self [Return] [x] | provenance | | +| file://:0:0:0:0 | [post] self [x, some:0] | test.swift:559:9:559:9 | self [Reverse] [x, some:0] | provenance | | +| file://:0:0:0:0 | [post] self [x] | test.swift:163:7:163:7 | self [Reverse] [x] | provenance | | +| file://:0:0:0:0 | [post] self [x] | test.swift:559:9:559:9 | self [Reverse] [x] | provenance | | +| file://:0:0:0:0 | self [Reverse] [a, x] | test.swift:185:7:185:7 | self [Reverse] [a, x] | provenance | | | file://:0:0:0:0 | self [a, x] | file://:0:0:0:0 | .a [x] | provenance | | | file://:0:0:0:0 | self [s, x] | file://:0:0:0:0 | .s [x] | provenance | | | file://:0:0:0:0 | self [str] | file://:0:0:0:0 | .str | provenance | | @@ -196,8 +189,7 @@ edges | test.swift:163:7:163:7 | value | file://:0:0:0:0 | value | provenance | | | test.swift:169:12:169:22 | value | test.swift:170:9:170:9 | value | provenance | | | test.swift:170:5:170:5 | [post] self [x] | test.swift:169:3:171:3 | self[return] [x] | provenance | | -| test.swift:170:5:170:5 | [post] self [x] | test.swift:170:5:170:5 | self [Reverse] [x] | provenance | | -| test.swift:170:5:170:5 | self [Reverse] [x] | test.swift:169:8:169:8 | self [Return] [x] | provenance | | +| test.swift:170:5:170:5 | [post] self [x] | test.swift:169:8:169:8 | self [Reverse] [x] | provenance | | | test.swift:170:9:170:9 | value | test.swift:163:7:163:7 | value | provenance | | | test.swift:170:9:170:9 | value | test.swift:170:5:170:5 | [post] self [x] | provenance | | | test.swift:173:8:173:8 | self [x] | test.swift:174:12:174:12 | self [x] | provenance | | @@ -442,9 +434,8 @@ edges | test.swift:576:14:576:21 | call to source() | test.swift:576:13:576:21 | call to +(_:) | provenance | | | test.swift:585:9:585:9 | self [str] | file://:0:0:0:0 | self [str] | provenance | | | test.swift:586:10:586:13 | s | test.swift:587:13:587:13 | s | provenance | | +| test.swift:587:7:587:7 | [post] self [str] | test.swift:586:5:586:5 | self [Reverse] [str] | provenance | | | test.swift:587:7:587:7 | [post] self [str] | test.swift:586:5:588:5 | self[return] [str] | provenance | | -| test.swift:587:7:587:7 | [post] self [str] | test.swift:587:7:587:7 | self [Reverse] [str] | provenance | | -| test.swift:587:7:587:7 | self [Reverse] [str] | test.swift:586:5:586:5 | self [Return] [str] | provenance | | | test.swift:587:13:587:13 | s | test.swift:587:7:587:7 | [post] self [str] | provenance | | | test.swift:592:17:595:5 | self[return] [str] | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | provenance | | | test.swift:593:7:593:7 | [post] self [str] | test.swift:592:17:595:5 | self[return] [str] | provenance | | @@ -690,7 +681,7 @@ edges | test.swift:831:15:831:15 | s2 [v] | test.swift:831:15:831:18 | .v | provenance | | | test.swift:833:15:833:15 | s2 [v] | test.swift:813:8:813:8 | self [v] | provenance | | | test.swift:833:15:833:15 | s2 [v] | test.swift:833:15:833:23 | call to getv() | provenance | | -| test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | test.swift:839:11:839:17 | enter #keyPath(...) [Return] [s, x] | provenance | | +| test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | test.swift:839:11:839:17 | enter #keyPath(...) [Reverse] [s, x] | provenance | | | test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:17:839:17 | [post] KeyPathComponent | provenance | | | test.swift:839:15:839:15 | [post] KeyPathComponent [x] | test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | provenance | | | test.swift:839:17:839:17 | [post] KeyPathComponent | test.swift:839:15:839:15 | [post] KeyPathComponent [x] | provenance | | @@ -785,13 +776,6 @@ nodes | file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | | file://:0:0:0:0 | [post] self [x] | semmle.label | [post] self [x] | | file://:0:0:0:0 | self [Reverse] [a, x] | semmle.label | self [Reverse] [a, x] | -| file://:0:0:0:0 | self [Reverse] [v2, some:0] | semmle.label | self [Reverse] [v2, some:0] | -| file://:0:0:0:0 | self [Reverse] [v2] | semmle.label | self [Reverse] [v2] | -| file://:0:0:0:0 | self [Reverse] [v3] | semmle.label | self [Reverse] [v3] | -| file://:0:0:0:0 | self [Reverse] [v] | semmle.label | self [Reverse] [v] | -| file://:0:0:0:0 | self [Reverse] [x, some:0] | semmle.label | self [Reverse] [x, some:0] | -| file://:0:0:0:0 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | -| file://:0:0:0:0 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | | file://:0:0:0:0 | self [a, x] | semmle.label | self [a, x] | | file://:0:0:0:0 | self [s, x] | semmle.label | self [s, x] | | file://:0:0:0:0 | self [str] | semmle.label | self [str] | @@ -978,14 +962,13 @@ nodes | test.swift:155:19:155:19 | i | semmle.label | i | | test.swift:157:16:157:23 | call to source() | semmle.label | call to source() | | test.swift:159:16:159:29 | call to ... | semmle.label | call to ... | -| test.swift:163:7:163:7 | self [Return] [x] | semmle.label | self [Return] [x] | +| test.swift:163:7:163:7 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | | test.swift:163:7:163:7 | self [x] | semmle.label | self [x] | | test.swift:163:7:163:7 | value | semmle.label | value | | test.swift:169:3:171:3 | self[return] [x] | semmle.label | self[return] [x] | -| test.swift:169:8:169:8 | self [Return] [x] | semmle.label | self [Return] [x] | +| test.swift:169:8:169:8 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | | test.swift:169:12:169:22 | value | semmle.label | value | | test.swift:170:5:170:5 | [post] self [x] | semmle.label | [post] self [x] | -| test.swift:170:5:170:5 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | | test.swift:170:9:170:9 | value | semmle.label | value | | test.swift:173:8:173:8 | self [x] | semmle.label | self [x] | | test.swift:174:12:174:12 | .x | semmle.label | .x | @@ -994,7 +977,7 @@ nodes | test.swift:180:9:180:16 | call to source() | semmle.label | call to source() | | test.swift:181:13:181:13 | a [x] | semmle.label | a [x] | | test.swift:181:13:181:15 | .x | semmle.label | .x | -| test.swift:185:7:185:7 | self [Return] [a, x] | semmle.label | self [Return] [a, x] | +| test.swift:185:7:185:7 | self [Reverse] [a, x] | semmle.label | self [Reverse] [a, x] | | test.swift:185:7:185:7 | self [a, x] | semmle.label | self [a, x] | | test.swift:194:3:194:3 | [post] b [a, x] | semmle.label | [post] b [a, x] | | test.swift:194:3:194:5 | .a [Reverse] [x] | semmle.label | .a [Reverse] [x] | @@ -1203,8 +1186,8 @@ nodes | test.swift:545:11:545:22 | .some(...) [some:0] | semmle.label | .some(...) [some:0] | | test.swift:545:21:545:21 | a | semmle.label | a | | test.swift:546:19:546:19 | a | semmle.label | a | -| test.swift:559:9:559:9 | self [Return] [x, some:0] | semmle.label | self [Return] [x, some:0] | -| test.swift:559:9:559:9 | self [Return] [x] | semmle.label | self [Return] [x] | +| test.swift:559:9:559:9 | self [Reverse] [x, some:0] | semmle.label | self [Reverse] [x, some:0] | +| test.swift:559:9:559:9 | self [Reverse] [x] | semmle.label | self [Reverse] [x] | | test.swift:559:9:559:9 | self [x, some:0] | semmle.label | self [x, some:0] | | test.swift:559:9:559:9 | self [x] | semmle.label | self [x] | | test.swift:559:9:559:9 | value | semmle.label | value | @@ -1226,11 +1209,10 @@ nodes | test.swift:576:14:576:21 | call to source() | semmle.label | call to source() | | test.swift:577:14:577:21 | call to source() | semmle.label | call to source() | | test.swift:585:9:585:9 | self [str] | semmle.label | self [str] | -| test.swift:586:5:586:5 | self [Return] [str] | semmle.label | self [Return] [str] | +| test.swift:586:5:586:5 | self [Reverse] [str] | semmle.label | self [Reverse] [str] | | test.swift:586:5:588:5 | self[return] [str] | semmle.label | self[return] [str] | | test.swift:586:10:586:13 | s | semmle.label | s | | test.swift:587:7:587:7 | [post] self [str] | semmle.label | [post] self [str] | -| test.swift:587:7:587:7 | self [Reverse] [str] | semmle.label | self [Reverse] [str] | | test.swift:587:13:587:13 | s | semmle.label | s | | test.swift:592:17:595:5 | self[return] [str] | semmle.label | self[return] [str] | | test.swift:593:7:593:7 | [post] self [str] | semmle.label | [post] self [str] | @@ -1349,13 +1331,13 @@ nodes | test.swift:726:15:726:15 | set2 [Collection element] | semmle.label | set2 [Collection element] | | test.swift:726:15:726:34 | call to randomElement() [some:0] | semmle.label | call to randomElement() [some:0] | | test.swift:726:15:726:35 | ...! | semmle.label | ...! | -| test.swift:731:9:731:9 | self [Return] [v2, some:0] | semmle.label | self [Return] [v2, some:0] | -| test.swift:731:9:731:9 | self [Return] [v2] | semmle.label | self [Return] [v2] | +| test.swift:731:9:731:9 | self [Reverse] [v2, some:0] | semmle.label | self [Reverse] [v2, some:0] | +| test.swift:731:9:731:9 | self [Reverse] [v2] | semmle.label | self [Reverse] [v2] | | test.swift:731:9:731:9 | self [v2, some:0] | semmle.label | self [v2, some:0] | | test.swift:731:9:731:9 | self [v2] | semmle.label | self [v2] | | test.swift:731:9:731:9 | value | semmle.label | value | | test.swift:731:9:731:9 | value [some:0] | semmle.label | value [some:0] | -| test.swift:732:9:732:9 | self [Return] [v3] | semmle.label | self [Return] [v3] | +| test.swift:732:9:732:9 | self [Reverse] [v3] | semmle.label | self [Reverse] [v3] | | test.swift:732:9:732:9 | self [v3] | semmle.label | self [v3] | | test.swift:732:9:732:9 | value | semmle.label | value | | test.swift:742:5:742:5 | v1 [some:0] | semmle.label | v1 [some:0] | @@ -1473,7 +1455,7 @@ nodes | test.swift:813:8:813:8 | self [v] | semmle.label | self [v] | | test.swift:813:31:813:31 | .v | semmle.label | .v | | test.swift:813:31:813:31 | self [v] | semmle.label | self [v] | -| test.swift:815:7:815:7 | self [Return] [v] | semmle.label | self [Return] [v] | +| test.swift:815:7:815:7 | self [Reverse] [v] | semmle.label | self [Reverse] [v] | | test.swift:815:7:815:7 | self [v] | semmle.label | self [v] | | test.swift:815:7:815:7 | value | semmle.label | value | | test.swift:819:14:819:25 | call to S3.init(_:) [v] | semmle.label | call to S3.init(_:) [v] | @@ -1490,7 +1472,7 @@ nodes | test.swift:833:15:833:23 | call to getv() | semmle.label | call to getv() | | test.swift:839:11:839:17 | [post] enter #keyPath(...) [s, x] | semmle.label | [post] enter #keyPath(...) [s, x] | | test.swift:839:11:839:17 | [post] exit #keyPath(...) | semmle.label | [post] exit #keyPath(...) | -| test.swift:839:11:839:17 | enter #keyPath(...) [Return] [s, x] | semmle.label | enter #keyPath(...) [Return] [s, x] | +| test.swift:839:11:839:17 | enter #keyPath(...) [Reverse] [s, x] | semmle.label | enter #keyPath(...) [Reverse] [s, x] | | test.swift:839:15:839:15 | [post] KeyPathComponent [x] | semmle.label | [post] KeyPathComponent [x] | | test.swift:839:17:839:17 | [post] KeyPathComponent | semmle.label | [post] KeyPathComponent | | test.swift:840:3:840:3 | [post] s2 [s, x] | semmle.label | [post] s2 [s, x] | @@ -1580,35 +1562,35 @@ subpaths | test.swift:119:31:119:31 | x | test.swift:113:14:113:19 | arg | test.swift:114:12:114:22 | call to ... | test.swift:119:18:119:44 | call to forward(arg:lambda:) | | test.swift:122:31:122:38 | call to source() | test.swift:113:14:113:19 | arg | test.swift:114:12:114:22 | call to ... | test.swift:122:18:125:6 | call to forward(arg:lambda:) | | test.swift:145:23:145:30 | call to source() | test.swift:142:10:142:13 | i | test.swift:143:16:143:16 | i | test.swift:145:15:145:31 | call to ... | -| test.swift:170:9:170:9 | value | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Return] [x] | test.swift:170:5:170:5 | [post] self [x] | +| test.swift:170:9:170:9 | value | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Reverse] [x] | test.swift:170:5:170:5 | [post] self [x] | | test.swift:174:12:174:12 | self [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:174:12:174:12 | .x | -| test.swift:180:9:180:16 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Return] [x] | test.swift:180:3:180:3 | [post] a [x] | +| test.swift:180:9:180:16 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Reverse] [x] | test.swift:180:3:180:3 | [post] a [x] | | test.swift:181:13:181:13 | a [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:181:13:181:15 | .x | -| test.swift:194:3:194:5 | .a [Reverse] [x] | file://:0:0:0:0 | .a [Reverse] [x] | test.swift:185:7:185:7 | self [Return] [a, x] | test.swift:194:3:194:3 | [post] b [a, x] | -| test.swift:194:11:194:18 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Return] [x] | test.swift:194:3:194:5 | [post] getter for .a [x] | +| test.swift:194:3:194:5 | .a [Reverse] [x] | file://:0:0:0:0 | .a [Reverse] [x] | test.swift:185:7:185:7 | self [Reverse] [a, x] | test.swift:194:3:194:3 | [post] b [a, x] | +| test.swift:194:11:194:18 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Reverse] [x] | test.swift:194:3:194:5 | [post] getter for .a [x] | | test.swift:195:13:195:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | file://:0:0:0:0 | .a [x] | test.swift:195:13:195:15 | .a [x] | | test.swift:195:13:195:15 | .a [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:195:13:195:17 | .x | | test.swift:200:9:200:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:3:171:3 | self[return] [x] | test.swift:200:3:200:3 | [post] a [x] | -| test.swift:200:9:200:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Return] [x] | test.swift:200:3:200:3 | [post] a [x] | +| test.swift:200:9:200:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Reverse] [x] | test.swift:200:3:200:3 | [post] a [x] | | test.swift:201:13:201:13 | a [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:201:13:201:15 | .x | -| test.swift:206:9:206:16 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Return] [x] | test.swift:206:3:206:3 | [post] a [x] | +| test.swift:206:9:206:16 | call to source() | test.swift:163:7:163:7 | value | test.swift:163:7:163:7 | self [Reverse] [x] | test.swift:206:3:206:3 | [post] a [x] | | test.swift:207:13:207:13 | a [x] | test.swift:173:8:173:8 | self [x] | test.swift:174:12:174:12 | .x | test.swift:207:13:207:19 | call to get() | | test.swift:212:9:212:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:3:171:3 | self[return] [x] | test.swift:212:3:212:3 | [post] a [x] | -| test.swift:212:9:212:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Return] [x] | test.swift:212:3:212:3 | [post] a [x] | +| test.swift:212:9:212:16 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Reverse] [x] | test.swift:212:3:212:3 | [post] a [x] | | test.swift:213:13:213:13 | a [x] | test.swift:173:8:173:8 | self [x] | test.swift:174:12:174:12 | .x | test.swift:213:13:213:19 | call to get() | -| test.swift:218:3:218:5 | .a [Reverse] [x] | file://:0:0:0:0 | .a [Reverse] [x] | test.swift:185:7:185:7 | self [Return] [a, x] | test.swift:218:3:218:3 | [post] b [a, x] | +| test.swift:218:3:218:5 | .a [Reverse] [x] | file://:0:0:0:0 | .a [Reverse] [x] | test.swift:185:7:185:7 | self [Reverse] [a, x] | test.swift:218:3:218:3 | [post] b [a, x] | | test.swift:218:11:218:18 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:3:171:3 | self[return] [x] | test.swift:218:3:218:5 | [post] getter for .a [x] | -| test.swift:218:11:218:18 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Return] [x] | test.swift:218:3:218:5 | [post] getter for .a [x] | +| test.swift:218:11:218:18 | call to source() | test.swift:169:12:169:22 | value | test.swift:169:8:169:8 | self [Reverse] [x] | test.swift:218:3:218:5 | [post] getter for .a [x] | | test.swift:219:13:219:13 | b [a, x] | test.swift:185:7:185:7 | self [a, x] | file://:0:0:0:0 | .a [x] | test.swift:219:13:219:15 | .a [x] | | test.swift:219:13:219:15 | .a [x] | test.swift:163:7:163:7 | self [x] | file://:0:0:0:0 | .x | test.swift:219:13:219:17 | .x | | test.swift:376:30:376:30 | t1 [Tuple element at index 1] | test.swift:368:22:368:36 | t [Tuple element at index 1] | test.swift:369:12:369:19 | (...) [Tuple element at index 0] | test.swift:376:14:376:32 | call to tupleShiftLeft1(_:) [Tuple element at index 0] | | test.swift:509:24:509:31 | call to source() | test.swift:394:16:394:21 | v | test.swift:394:45:394:62 | call to ... [mySingle:0] | test.swift:509:14:509:32 | call to mkMyEnum1(_:) [mySingle:0] | | test.swift:522:26:522:33 | call to source() | test.swift:396:18:396:23 | v | test.swift:396:45:396:60 | call to ... [some:0] | test.swift:522:14:522:34 | call to mkOptional1(_:) [some:0] | -| test.swift:565:12:565:12 | x | test.swift:559:9:559:9 | value | test.swift:559:9:559:9 | self [Return] [x] | test.swift:565:5:565:5 | [post] cx [x] | -| test.swift:565:12:565:12 | x [some:0] | test.swift:559:9:559:9 | value [some:0] | test.swift:559:9:559:9 | self [Return] [x, some:0] | test.swift:565:5:565:5 | [post] cx [x, some:0] | +| test.swift:565:12:565:12 | x | test.swift:559:9:559:9 | value | test.swift:559:9:559:9 | self [Reverse] [x] | test.swift:565:5:565:5 | [post] cx [x] | +| test.swift:565:12:565:12 | x [some:0] | test.swift:559:9:559:9 | value [some:0] | test.swift:559:9:559:9 | self [Reverse] [x, some:0] | test.swift:565:5:565:5 | [post] cx [x, some:0] | | test.swift:569:20:569:20 | cx [x, some:0] | test.swift:559:9:559:9 | self [x, some:0] | file://:0:0:0:0 | .x [some:0] | test.swift:569:20:569:23 | .x [some:0] | | test.swift:569:20:569:20 | cx [x] | test.swift:559:9:559:9 | self [x] | file://:0:0:0:0 | .x | test.swift:569:20:569:23 | .x | -| test.swift:593:20:593:28 | call to source3() | test.swift:586:10:586:13 | s | test.swift:586:5:586:5 | self [Return] [str] | test.swift:593:7:593:7 | [post] self [str] | +| test.swift:593:20:593:28 | call to source3() | test.swift:586:10:586:13 | s | test.swift:586:5:586:5 | self [Reverse] [str] | test.swift:593:7:593:7 | [post] self [str] | | test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | test.swift:585:9:585:9 | self [str] | file://:0:0:0:0 | .str | test.swift:599:13:599:35 | .str | | test.swift:599:24:599:32 | call to source3() | test.swift:586:10:586:13 | s | test.swift:586:5:588:5 | self[return] [str] | test.swift:599:13:599:33 | call to MyClass.init(s:) [str] | | test.swift:600:13:600:41 | call to MyClass.init(contentsOfFile:) [str] | test.swift:585:9:585:9 | self [str] | file://:0:0:0:0 | .str | test.swift:600:13:600:43 | .str | @@ -1622,9 +1604,9 @@ subpaths | test.swift:661:18:661:25 | call to source() | test.swift:617:8:617:11 | x | test.swift:617:3:619:3 | self[return] [x] | test.swift:661:13:661:26 | call to S.init(x:) [x] | | test.swift:662:29:662:29 | s [some:0, x] | test.swift:655:8:655:12 | s [some:0, x] | test.swift:655:3:657:3 | self[return] [s, some:0, x] | test.swift:662:14:662:30 | call to S2_Optional.init(s:) [s, some:0, x] | | test.swift:664:15:664:15 | s2 [s, some:0, x] | test.swift:663:13:663:29 | enter #keyPath(...) [s, some:0, x] | test.swift:663:13:663:29 | exit #keyPath(...) [some:0] | test.swift:664:15:664:28 | \\...[...] [some:0] | -| test.swift:746:14:746:21 | call to source() | test.swift:731:9:731:9 | value | test.swift:731:9:731:9 | self [Return] [v2] | test.swift:746:5:746:5 | [post] mo1 [v2] | -| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:731:9:731:9 | value [some:0] | test.swift:731:9:731:9 | self [Return] [v2, some:0] | test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | -| test.swift:747:14:747:21 | call to source() | test.swift:732:9:732:9 | value | test.swift:732:9:732:9 | self [Return] [v3] | test.swift:747:5:747:5 | [post] mo1 [v3] | +| test.swift:746:14:746:21 | call to source() | test.swift:731:9:731:9 | value | test.swift:731:9:731:9 | self [Reverse] [v2] | test.swift:746:5:746:5 | [post] mo1 [v2] | +| test.swift:746:14:746:21 | call to source() [some:0] | test.swift:731:9:731:9 | value [some:0] | test.swift:731:9:731:9 | self [Reverse] [v2, some:0] | test.swift:746:5:746:5 | [post] mo1 [v2, some:0] | +| test.swift:747:14:747:21 | call to source() | test.swift:732:9:732:9 | value | test.swift:732:9:732:9 | self [Reverse] [v3] | test.swift:747:5:747:5 | [post] mo1 [v3] | | test.swift:756:15:756:15 | mo1 [v2, some:0] | test.swift:731:9:731:9 | self [v2, some:0] | file://:0:0:0:0 | .v2 [some:0] | test.swift:756:15:756:19 | .v2 [some:0] | | test.swift:756:15:756:15 | mo1 [v2] | test.swift:731:9:731:9 | self [v2] | file://:0:0:0:0 | .v2 | test.swift:756:15:756:19 | .v2 | | test.swift:757:15:757:15 | mo1 [v3] | test.swift:732:9:732:9 | self [v3] | file://:0:0:0:0 | .v3 | test.swift:757:15:757:19 | .v3 | @@ -1635,10 +1617,10 @@ subpaths | test.swift:819:17:819:24 | call to source() | test.swift:809:8:809:13 | v | test.swift:809:3:811:3 | self[return] [v] | test.swift:819:14:819:25 | call to S3.init(_:) [v] | | test.swift:822:15:822:15 | s1 [v] | test.swift:815:7:815:7 | self [v] | file://:0:0:0:0 | .v | test.swift:822:15:822:18 | .v | | test.swift:824:15:824:15 | s1 [v] | test.swift:813:8:813:8 | self [v] | test.swift:813:31:813:31 | .v | test.swift:824:15:824:23 | call to getv() | -| test.swift:828:12:828:19 | call to source() | test.swift:815:7:815:7 | value | test.swift:815:7:815:7 | self [Return] [v] | test.swift:828:5:828:5 | [post] s2 [v] | +| test.swift:828:12:828:19 | call to source() | test.swift:815:7:815:7 | value | test.swift:815:7:815:7 | self [Reverse] [v] | test.swift:828:5:828:5 | [post] s2 [v] | | test.swift:831:15:831:15 | s2 [v] | test.swift:815:7:815:7 | self [v] | file://:0:0:0:0 | .v | test.swift:831:15:831:18 | .v | | test.swift:833:15:833:15 | s2 [v] | test.swift:813:8:813:8 | self [v] | test.swift:813:31:813:31 | .v | test.swift:833:15:833:23 | call to getv() | -| test.swift:840:3:840:16 | \\...[...] | test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:11:839:17 | enter #keyPath(...) [Return] [s, x] | test.swift:840:3:840:3 | [post] s2 [s, x] | +| test.swift:840:3:840:16 | \\...[...] | test.swift:839:11:839:17 | [post] exit #keyPath(...) | test.swift:839:11:839:17 | enter #keyPath(...) [Reverse] [s, x] | test.swift:840:3:840:3 | [post] s2 [s, x] | | test.swift:841:13:841:13 | s2 [s, x] | test.swift:632:7:632:7 | self [s, x] | file://:0:0:0:0 | .s [x] | test.swift:841:13:841:16 | .s [x] | | test.swift:841:13:841:16 | .s [x] | test.swift:615:7:615:7 | self [x] | file://:0:0:0:0 | .x | test.swift:841:13:841:18 | .x | | test.swift:867:15:867:15 | args [Collection element] | test.swift:866:21:866:29 | enter #keyPath(...) [Collection element] | test.swift:866:21:866:29 | exit #keyPath(...) | test.swift:867:15:867:38 | \\...[...] | diff --git a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected index b403bf7f0d7bf..1abce3ff04845 100644 --- a/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected +++ b/swift/ql/test/library-tests/dataflow/taint/core/Taint.expected @@ -148,10 +148,8 @@ edges | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | provenance | | | conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:199:7:199:12 | v | provenance | | | conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | provenance | | -| file://:0:0:0:0 | [post] self [first] | file://:0:0:0:0 | self [Reverse] [first] | provenance | | -| file://:0:0:0:0 | [post] self [second] | file://:0:0:0:0 | self [Reverse] [second] | provenance | | -| file://:0:0:0:0 | self [Reverse] [first] | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | provenance | | -| file://:0:0:0:0 | self [Reverse] [second] | stringinterpolation.swift:7:6:7:6 | self [Return] [second] | provenance | | +| file://:0:0:0:0 | [post] self [first] | stringinterpolation.swift:6:6:6:6 | self [Reverse] [first] | provenance | | +| file://:0:0:0:0 | [post] self [second] | stringinterpolation.swift:7:6:7:6 | self [Reverse] [second] | provenance | | | file://:0:0:0:0 | self [first] | file://:0:0:0:0 | .first | provenance | | | file://:0:0:0:0 | self [second] | file://:0:0:0:0 | .second | provenance | | | file://:0:0:0:0 | self [v] | file://:0:0:0:0 | .v | provenance | | @@ -203,7 +201,7 @@ edges | stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | provenance | | | stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:13:36:13:41 | .first | provenance | | | stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:11:11:14:2 | self[return] | provenance | | -| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:11:16:11:16 | self [Return] | provenance | | +| stringinterpolation.swift:13:36:13:41 | .first | stringinterpolation.swift:11:16:11:16 | self [Reverse] | provenance | | | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | stringinterpolation.swift:20:2:20:2 | p1 [first] | provenance | | | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | provenance | | | stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | provenance | | @@ -434,8 +432,6 @@ nodes | file://:0:0:0:0 | .v | semmle.label | .v | | file://:0:0:0:0 | [post] self [first] | semmle.label | [post] self [first] | | file://:0:0:0:0 | [post] self [second] | semmle.label | [post] self [second] | -| file://:0:0:0:0 | self [Reverse] [first] | semmle.label | self [Reverse] [first] | -| file://:0:0:0:0 | self [Reverse] [second] | semmle.label | self [Reverse] [second] | | file://:0:0:0:0 | self [first] | semmle.label | self [first] | | file://:0:0:0:0 | self [second] | semmle.label | self [second] | | file://:0:0:0:0 | self [v] | semmle.label | self [v] | @@ -514,14 +510,14 @@ nodes | simple.swift:87:14:87:21 | call to source() | semmle.label | call to source() | | simple.swift:156:12:156:19 | call to source() | semmle.label | call to source() | | simple.swift:157:12:157:19 | call to source() | semmle.label | call to source() | -| stringinterpolation.swift:6:6:6:6 | self [Return] [first] | semmle.label | self [Return] [first] | +| stringinterpolation.swift:6:6:6:6 | self [Reverse] [first] | semmle.label | self [Reverse] [first] | | stringinterpolation.swift:6:6:6:6 | self [first] | semmle.label | self [first] | | stringinterpolation.swift:6:6:6:6 | value | semmle.label | value | -| stringinterpolation.swift:7:6:7:6 | self [Return] [second] | semmle.label | self [Return] [second] | +| stringinterpolation.swift:7:6:7:6 | self [Reverse] [second] | semmle.label | self [Reverse] [second] | | stringinterpolation.swift:7:6:7:6 | self [second] | semmle.label | self [second] | | stringinterpolation.swift:7:6:7:6 | value | semmle.label | value | | stringinterpolation.swift:11:11:14:2 | self[return] | semmle.label | self[return] | -| stringinterpolation.swift:11:16:11:16 | self [Return] | semmle.label | self [Return] | +| stringinterpolation.swift:11:16:11:16 | self [Reverse] | semmle.label | self [Reverse] | | stringinterpolation.swift:11:36:11:44 | pair [first] | semmle.label | pair [first] | | stringinterpolation.swift:13:36:13:36 | pair [first] | semmle.label | pair [first] | | stringinterpolation.swift:13:36:13:41 | .first | semmle.label | .first | @@ -568,11 +564,11 @@ subpaths | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | conversions.swift:224:20:224:33 | withMyValue [v] | conversions.swift:226:10:226:22 | .v | conversions.swift:241:12:241:55 | call to mkInt(withMyValue:) | | conversions.swift:241:43:241:53 | call to sourceInt() | conversions.swift:199:7:199:12 | v | conversions.swift:199:2:201:2 | self[return] [v] | conversions.swift:241:35:241:54 | call to MyValue.init(_:) [v] | | stringinterpolation.swift:13:36:13:36 | pair [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:13:36:13:41 | .first | -| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | stringinterpolation.swift:6:6:6:6 | self [Return] [first] | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | +| stringinterpolation.swift:19:13:19:20 | call to source() | stringinterpolation.swift:6:6:6:6 | value | stringinterpolation.swift:6:6:6:6 | self [Reverse] [first] | stringinterpolation.swift:19:2:19:2 | [post] p1 [first] | | stringinterpolation.swift:22:21:22:21 | p1 [first] | stringinterpolation.swift:6:6:6:6 | self [first] | file://:0:0:0:0 | .first | stringinterpolation.swift:22:21:22:24 | .first | | stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:11:36:11:44 | pair [first] | stringinterpolation.swift:11:11:14:2 | self[return] | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | -| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:11:36:11:44 | pair [first] | stringinterpolation.swift:11:16:11:16 | self [Return] | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | -| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | stringinterpolation.swift:7:6:7:6 | self [Return] [second] | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | +| stringinterpolation.swift:24:21:24:21 | p1 [first] | stringinterpolation.swift:11:36:11:44 | pair [first] | stringinterpolation.swift:11:16:11:16 | self [Reverse] | stringinterpolation.swift:24:20:24:20 | [post] $interpolation | +| stringinterpolation.swift:28:14:28:21 | call to source() | stringinterpolation.swift:7:6:7:6 | value | stringinterpolation.swift:7:6:7:6 | self [Reverse] [second] | stringinterpolation.swift:28:2:28:2 | [post] p2 [second] | | stringinterpolation.swift:31:21:31:21 | p2 [second] | stringinterpolation.swift:7:6:7:6 | self [second] | file://:0:0:0:0 | .second | stringinterpolation.swift:31:21:31:24 | .second | #select | conversions.swift:32:12:32:22 | call to sourceInt() | conversions.swift:32:12:32:22 | call to sourceInt() | conversions.swift:32:12:32:22 | call to sourceInt() | result | diff --git a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected index 78a9b7120ecf3..9e5c43aaf8570 100644 --- a/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected +++ b/swift/ql/test/query-tests/Security/CWE-311/CleartextStorageDatabase.expected @@ -65,12 +65,12 @@ edges | file://:0:0:0:0 | [post] self [value] | file://:0:0:0:0 | self [Reverse] [value] | provenance | | | file://:0:0:0:0 | self | file://:0:0:0:0 | .value | provenance | Config | | file://:0:0:0:0 | self | file://:0:0:0:0 | .value2 | provenance | Config | -| file://:0:0:0:0 | self [Reverse] [data, Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | provenance | | -| file://:0:0:0:0 | self [Reverse] [data] | testRealm2.swift:13:6:13:6 | self [Return] [data] | provenance | | -| file://:0:0:0:0 | self [Reverse] [data] | testRealm.swift:27:6:27:6 | self [Return] [data] | provenance | | -| file://:0:0:0:0 | self [Reverse] [notStoredBankAccountNumber] | testCoreData2.swift:23:13:23:13 | self [Return] [notStoredBankAccountNumber] | provenance | | -| file://:0:0:0:0 | self [Reverse] [password] | testRealm.swift:34:6:34:6 | self [Return] [password] | provenance | | -| file://:0:0:0:0 | self [Reverse] [value] | testCoreData2.swift:70:9:70:9 | self [Return] [value] | provenance | | +| file://:0:0:0:0 | self [Reverse] [data, Collection element] | testRealm2.swift:13:6:13:6 | self [Reverse] [data, Collection element] | provenance | | +| file://:0:0:0:0 | self [Reverse] [data] | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | provenance | | +| file://:0:0:0:0 | self [Reverse] [data] | testRealm.swift:27:6:27:6 | self [Reverse] [data] | provenance | | +| file://:0:0:0:0 | self [Reverse] [notStoredBankAccountNumber] | testCoreData2.swift:23:13:23:13 | self [Reverse] [notStoredBankAccountNumber] | provenance | | +| file://:0:0:0:0 | self [Reverse] [password] | testRealm.swift:34:6:34:6 | self [Reverse] [password] | provenance | | +| file://:0:0:0:0 | self [Reverse] [value] | testCoreData2.swift:70:9:70:9 | self [Reverse] [value] | provenance | | | file://:0:0:0:0 | self [value] | file://:0:0:0:0 | .value | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [data] | provenance | | @@ -361,7 +361,7 @@ nodes | sqlite3_c_api.swift:46:27:46:27 | insertQuery | semmle.label | insertQuery | | sqlite3_c_api.swift:47:27:47:27 | updateQuery | semmle.label | updateQuery | | sqlite3_c_api.swift:58:36:58:36 | medicalNotes | semmle.label | medicalNotes | -| testCoreData2.swift:23:13:23:13 | self [Return] [notStoredBankAccountNumber] | semmle.label | self [Return] [notStoredBankAccountNumber] | +| testCoreData2.swift:23:13:23:13 | self [Reverse] [notStoredBankAccountNumber] | semmle.label | self [Reverse] [notStoredBankAccountNumber] | | testCoreData2.swift:23:13:23:13 | value | semmle.label | value | | testCoreData2.swift:37:2:37:2 | [post] obj | semmle.label | [post] obj | | testCoreData2.swift:37:16:37:16 | bankAccountNo | semmle.label | bankAccountNo | @@ -388,7 +388,7 @@ nodes | testCoreData2.swift:65:3:65:3 | [post] obj | semmle.label | [post] obj | | testCoreData2.swift:65:29:65:29 | bankAccountNo | semmle.label | bankAccountNo | | testCoreData2.swift:70:9:70:9 | self | semmle.label | self | -| testCoreData2.swift:70:9:70:9 | self [Return] [value] | semmle.label | self [Return] [value] | +| testCoreData2.swift:70:9:70:9 | self [Reverse] [value] | semmle.label | self [Reverse] [value] | | testCoreData2.swift:70:9:70:9 | self [value] | semmle.label | self [value] | | testCoreData2.swift:70:9:70:9 | value | semmle.label | value | | testCoreData2.swift:71:9:71:9 | self | semmle.label | self | @@ -569,8 +569,8 @@ nodes | testGRDB.swift:210:85:210:85 | password | semmle.label | password | | testGRDB.swift:212:98:212:107 | [...] | semmle.label | [...] | | testGRDB.swift:212:99:212:99 | password | semmle.label | password | -| testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | semmle.label | self [Return] [data, Collection element] | -| testRealm2.swift:13:6:13:6 | self [Return] [data] | semmle.label | self [Return] [data] | +| testRealm2.swift:13:6:13:6 | self [Reverse] [data, Collection element] | semmle.label | self [Reverse] [data, Collection element] | +| testRealm2.swift:13:6:13:6 | self [Reverse] [data] | semmle.label | self [Reverse] [data] | | testRealm2.swift:13:6:13:6 | value | semmle.label | value | | testRealm2.swift:13:6:13:6 | value [Collection element] | semmle.label | value [Collection element] | | testRealm2.swift:18:2:18:2 | [post] o | semmle.label | [post] o | @@ -591,9 +591,9 @@ nodes | testRealm2.swift:34:11:34:25 | call to String.init(_:) | semmle.label | call to String.init(_:) | | testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | semmle.label | call to String.init(_:) [Collection element] | | testRealm2.swift:34:18:34:18 | int_ccn | semmle.label | int_ccn | -| testRealm.swift:27:6:27:6 | self [Return] [data] | semmle.label | self [Return] [data] | +| testRealm.swift:27:6:27:6 | self [Reverse] [data] | semmle.label | self [Reverse] [data] | | testRealm.swift:27:6:27:6 | value | semmle.label | value | -| testRealm.swift:34:6:34:6 | self [Return] [password] | semmle.label | self [Return] [password] | +| testRealm.swift:34:6:34:6 | self [Reverse] [password] | semmle.label | self [Reverse] [password] | | testRealm.swift:34:6:34:6 | value | semmle.label | value | | testRealm.swift:41:2:41:2 | [post] a | semmle.label | [post] a | | testRealm.swift:41:11:41:11 | myPassword | semmle.label | myPassword | @@ -606,8 +606,8 @@ nodes | testRealm.swift:73:2:73:2 | [post] h | semmle.label | [post] h | | testRealm.swift:73:15:73:15 | myPassword | semmle.label | myPassword | subpaths -| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | testCoreData2.swift:23:13:23:13 | self [Return] [notStoredBankAccountNumber] | testCoreData2.swift:43:2:43:2 | [post] obj | -| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | testCoreData2.swift:23:13:23:13 | self [Return] [notStoredBankAccountNumber] | testCoreData2.swift:52:2:52:10 | [post] ...? | +| testCoreData2.swift:43:35:43:35 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | testCoreData2.swift:23:13:23:13 | self [Reverse] [notStoredBankAccountNumber] | testCoreData2.swift:43:2:43:2 | [post] obj | +| testCoreData2.swift:52:41:52:41 | bankAccountNo | testCoreData2.swift:23:13:23:13 | value | testCoreData2.swift:23:13:23:13 | self [Reverse] [notStoredBankAccountNumber] | testCoreData2.swift:52:2:52:10 | [post] ...? | | testCoreData2.swift:82:18:82:18 | bankAccountNo | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:82:18:82:32 | .value | | testCoreData2.swift:83:18:83:18 | bankAccountNo | testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | .value2 | testCoreData2.swift:83:18:83:32 | .value2 | | testCoreData2.swift:84:18:84:18 | ...! | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:84:18:84:33 | .value | @@ -616,24 +616,24 @@ subpaths | testCoreData2.swift:89:22:89:22 | ...! | testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | .value2 | testCoreData2.swift:89:22:89:37 | .value2 | | testCoreData2.swift:92:10:92:10 | a | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:92:10:92:12 | .value | | testCoreData2.swift:97:12:97:12 | c | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:97:12:97:14 | .value | -| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:70:9:70:9 | value | testCoreData2.swift:70:9:70:9 | self [Return] [value] | testCoreData2.swift:97:2:97:2 | [post] d [value] | +| testCoreData2.swift:97:12:97:14 | .value | testCoreData2.swift:70:9:70:9 | value | testCoreData2.swift:70:9:70:9 | self [Reverse] [value] | testCoreData2.swift:97:2:97:2 | [post] d [value] | | testCoreData2.swift:98:18:98:18 | d [value] | testCoreData2.swift:70:9:70:9 | self [value] | file://:0:0:0:0 | .value | testCoreData2.swift:98:18:98:20 | .value | | testCoreData2.swift:104:18:104:18 | e | testCoreData2.swift:70:9:70:9 | self | file://:0:0:0:0 | .value | testCoreData2.swift:104:18:104:20 | .value | | testCoreData2.swift:105:18:105:18 | e | testCoreData2.swift:71:9:71:9 | self | file://:0:0:0:0 | .value2 | testCoreData2.swift:105:18:105:20 | .value2 | -| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:18:2:18:2 | [post] o | -| testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:24:2:24:2 | [post] o | -| testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:25:2:25:2 | [post] o | -| testRealm2.swift:26:11:26:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:26:2:26:2 | [post] o | -| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | testRealm2.swift:26:2:26:2 | [post] o | -| testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:32:2:32:2 | [post] o | -| testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:33:2:33:2 | [post] o | -| testRealm2.swift:34:11:34:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Return] [data] | testRealm2.swift:34:2:34:2 | [post] o | -| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Return] [data, Collection element] | testRealm2.swift:34:2:34:2 | [post] o | -| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:41:2:41:2 | [post] a | -| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:49:2:49:2 | [post] c | -| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:59:2:59:3 | [post] ...! | -| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Return] [data] | testRealm.swift:66:2:66:2 | [post] g | -| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:34:6:34:6 | value | testRealm.swift:34:6:34:6 | self [Return] [password] | testRealm.swift:73:2:73:2 | [post] h | +| testRealm2.swift:18:11:18:11 | myPassword | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:18:2:18:2 | [post] o | +| testRealm2.swift:24:11:24:11 | socialSecurityNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:24:2:24:2 | [post] o | +| testRealm2.swift:25:11:25:11 | ssn | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:25:2:25:2 | [post] o | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:26:2:26:2 | [post] o | +| testRealm2.swift:26:11:26:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Reverse] [data, Collection element] | testRealm2.swift:26:2:26:2 | [post] o | +| testRealm2.swift:32:11:32:11 | creditCardNumber | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:32:2:32:2 | [post] o | +| testRealm2.swift:33:11:33:11 | CCN | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:33:2:33:2 | [post] o | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) | testRealm2.swift:13:6:13:6 | value | testRealm2.swift:13:6:13:6 | self [Reverse] [data] | testRealm2.swift:34:2:34:2 | [post] o | +| testRealm2.swift:34:11:34:25 | call to String.init(_:) [Collection element] | testRealm2.swift:13:6:13:6 | value [Collection element] | testRealm2.swift:13:6:13:6 | self [Reverse] [data, Collection element] | testRealm2.swift:34:2:34:2 | [post] o | +| testRealm.swift:41:11:41:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Reverse] [data] | testRealm.swift:41:2:41:2 | [post] a | +| testRealm.swift:49:11:49:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Reverse] [data] | testRealm.swift:49:2:49:2 | [post] c | +| testRealm.swift:59:12:59:12 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Reverse] [data] | testRealm.swift:59:2:59:3 | [post] ...! | +| testRealm.swift:66:11:66:11 | myPassword | testRealm.swift:27:6:27:6 | value | testRealm.swift:27:6:27:6 | self [Reverse] [data] | testRealm.swift:66:2:66:2 | [post] g | +| testRealm.swift:73:15:73:15 | myPassword | testRealm.swift:34:6:34:6 | value | testRealm.swift:34:6:34:6 | self [Reverse] [password] | testRealm.swift:73:2:73:2 | [post] h | #select | SQLite.swift:123:17:123:17 | insertQuery | SQLite.swift:119:70:119:70 | mobilePhoneNumber | SQLite.swift:123:17:123:17 | insertQuery | This operation stores 'insertQuery' in a database. It may contain unencrypted sensitive data from $@. | SQLite.swift:119:70:119:70 | mobilePhoneNumber | mobilePhoneNumber | | SQLite.swift:124:17:124:17 | updateQuery | SQLite.swift:120:50:120:50 | mobilePhoneNumber | SQLite.swift:124:17:124:17 | updateQuery | This operation stores 'updateQuery' in a database. It may contain unencrypted sensitive data from $@. | SQLite.swift:120:50:120:50 | mobilePhoneNumber | mobilePhoneNumber | diff --git a/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected b/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected index 341e643f7c1f5..cbb1864cf4c04 100644 --- a/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected +++ b/swift/ql/test/query-tests/Security/CWE-321/HardcodedEncryptionKey.expected @@ -26,8 +26,7 @@ edges | cryptoswift.swift:94:18:94:36 | call to getConstantString() | cryptoswift.swift:155:26:155:26 | keyString | provenance | | | cryptoswift.swift:94:18:94:36 | call to getConstantString() | cryptoswift.swift:164:24:164:24 | keyString | provenance | | | cryptoswift.swift:94:18:94:36 | call to getConstantString() | cryptoswift.swift:166:24:166:24 | keyString | provenance | | -| file://:0:0:0:0 | [post] self [encryptionKey] | file://:0:0:0:0 | self [Reverse] [encryptionKey] | provenance | | -| file://:0:0:0:0 | self [Reverse] [encryptionKey] | misc.swift:30:7:30:7 | self [Return] [encryptionKey] | provenance | | +| file://:0:0:0:0 | [post] self [encryptionKey] | misc.swift:30:7:30:7 | self [Reverse] [encryptionKey] | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [encryptionKey] | provenance | | | grdb.swift:21:20:21:20 | abc123 | grdb.swift:27:23:27:23 | constString | provenance | | @@ -110,7 +109,6 @@ nodes | cryptoswift.swift:166:24:166:24 | keyString | semmle.label | keyString | | file://:0:0:0:0 | [post] self | semmle.label | [post] self | | file://:0:0:0:0 | [post] self [encryptionKey] | semmle.label | [post] self [encryptionKey] | -| file://:0:0:0:0 | self [Reverse] [encryptionKey] | semmle.label | self [Reverse] [encryptionKey] | | file://:0:0:0:0 | value | semmle.label | value | | grdb.swift:21:20:21:20 | abc123 | semmle.label | abc123 | | grdb.swift:22:33:22:50 | [...] | semmle.label | [...] | @@ -120,7 +118,7 @@ nodes | grdb.swift:29:23:29:23 | constData | semmle.label | constData | | grdb.swift:31:26:31:26 | constString | semmle.label | constString | | grdb.swift:33:26:33:26 | constData | semmle.label | constData | -| misc.swift:30:7:30:7 | self [Return] [encryptionKey] | semmle.label | self [Return] [encryptionKey] | +| misc.swift:30:7:30:7 | self [Reverse] [encryptionKey] | semmle.label | self [Reverse] [encryptionKey] | | misc.swift:30:7:30:7 | value | semmle.label | value | | misc.swift:57:19:57:38 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | | misc.swift:57:24:57:24 | abcdef123456 | semmle.label | abcdef123456 | @@ -162,8 +160,8 @@ nodes | sqlite3_c_api.swift:49:36:49:36 | buffer | semmle.label | buffer | | sqlite3_c_api.swift:50:38:50:38 | buffer | semmle.label | buffer | subpaths -| misc.swift:66:25:66:25 | myConstKey | misc.swift:30:7:30:7 | value | misc.swift:30:7:30:7 | self [Return] [encryptionKey] | misc.swift:66:2:66:2 | [post] config | -| misc.swift:70:41:70:41 | myConstKey | misc.swift:30:7:30:7 | value | misc.swift:30:7:30:7 | self [Return] [encryptionKey] | misc.swift:70:2:70:18 | [post] getter for .config | +| misc.swift:66:25:66:25 | myConstKey | misc.swift:30:7:30:7 | value | misc.swift:30:7:30:7 | self [Reverse] [encryptionKey] | misc.swift:66:2:66:2 | [post] config | +| misc.swift:70:41:70:41 | myConstKey | misc.swift:30:7:30:7 | value | misc.swift:30:7:30:7 | self [Reverse] [encryptionKey] | misc.swift:70:2:70:18 | [post] getter for .config | #select | SQLite.swift:43:13:43:13 | hardcoded_key | SQLite.swift:43:13:43:13 | hardcoded_key | SQLite.swift:43:13:43:13 | hardcoded_key | The key 'hardcoded_key' has been initialized with hard-coded values from $@. | SQLite.swift:43:13:43:13 | hardcoded_key | hardcoded_key | | SQLite.swift:45:23:45:23 | hardcoded_key | SQLite.swift:45:23:45:23 | hardcoded_key | SQLite.swift:45:23:45:23 | hardcoded_key | The key 'hardcoded_key' has been initialized with hard-coded values from $@. | SQLite.swift:45:23:45:23 | hardcoded_key | hardcoded_key | diff --git a/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected b/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected index 4f469054e7062..377ad38101378 100644 --- a/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected +++ b/swift/ql/test/query-tests/Security/CWE-757/InsecureTLS.expected @@ -42,17 +42,12 @@ edges | InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:196:56:196:63 | value | provenance | | | InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | provenance | | | file://:0:0:0:0 | .tlsMinimumSupportedProtocolVersion [Reverse] | file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | [post] self [TLSVersion] | file://:0:0:0:0 | self [Reverse] [TLSVersion] | provenance | | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocol] | provenance | | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocol] | provenance | | -| file://:0:0:0:0 | self [Reverse] [TLSVersion] | InsecureTLS.swift:158:7:158:7 | self [Return] [TLSVersion] | provenance | | -| file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:20:7:20:7 | self [Return] [tlsMaximumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocol] | InsecureTLS.swift:23:7:23:7 | self [Return] [tlsMaximumSupportedProtocol] | provenance | | -| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | provenance | | -| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocol] | InsecureTLS.swift:22:7:22:7 | self [Return] [tlsMinimumSupportedProtocol] | provenance | | +| file://:0:0:0:0 | [post] self [TLSVersion] | InsecureTLS.swift:158:7:158:7 | self [Reverse] [TLSVersion] | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:20:7:20:7 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | provenance | | +| file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | InsecureTLS.swift:23:7:23:7 | self [Reverse] [tlsMaximumSupportedProtocol] | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | provenance | | +| file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | InsecureTLS.swift:22:7:22:7 | self [Reverse] [tlsMinimumSupportedProtocol] | provenance | | +| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | provenance | | | file://:0:0:0:0 | self [TLSVersion] | file://:0:0:0:0 | .TLSVersion | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self | provenance | | @@ -64,14 +59,14 @@ edges | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | provenance | | | file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | provenance | | nodes -| InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Return] [tlsMinimumSupportedProtocolVersion] | -| InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Return] [tlsMinimumSupportedProtocolVersion] | +| InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocolVersion] | +| InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocolVersion] | | InsecureTLS.swift:19:7:19:7 | value | semmle.label | value | -| InsecureTLS.swift:20:7:20:7 | self [Return] [tlsMaximumSupportedProtocolVersion] | semmle.label | self [Return] [tlsMaximumSupportedProtocolVersion] | +| InsecureTLS.swift:20:7:20:7 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMaximumSupportedProtocolVersion] | | InsecureTLS.swift:20:7:20:7 | value | semmle.label | value | -| InsecureTLS.swift:22:7:22:7 | self [Return] [tlsMinimumSupportedProtocol] | semmle.label | self [Return] [tlsMinimumSupportedProtocol] | +| InsecureTLS.swift:22:7:22:7 | self [Reverse] [tlsMinimumSupportedProtocol] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocol] | | InsecureTLS.swift:22:7:22:7 | value | semmle.label | value | -| InsecureTLS.swift:23:7:23:7 | self [Return] [tlsMaximumSupportedProtocol] | semmle.label | self [Return] [tlsMaximumSupportedProtocol] | +| InsecureTLS.swift:23:7:23:7 | self [Reverse] [tlsMaximumSupportedProtocol] | semmle.label | self [Reverse] [tlsMaximumSupportedProtocol] | | InsecureTLS.swift:23:7:23:7 | value | semmle.label | value | | InsecureTLS.swift:40:3:40:3 | [post] config | semmle.label | [post] config | | InsecureTLS.swift:40:47:40:70 | .TLSv10 | semmle.label | .TLSv10 | @@ -90,7 +85,7 @@ nodes | InsecureTLS.swift:122:3:122:3 | [post] config | semmle.label | [post] config | | InsecureTLS.swift:122:47:122:47 | version | semmle.label | version | | InsecureTLS.swift:127:25:127:48 | .TLSv11 | semmle.label | .TLSv11 | -| InsecureTLS.swift:158:7:158:7 | self [Return] [TLSVersion] | semmle.label | self [Return] [TLSVersion] | +| InsecureTLS.swift:158:7:158:7 | self [Reverse] [TLSVersion] | semmle.label | self [Reverse] [TLSVersion] | | InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | semmle.label | self [TLSVersion] | | InsecureTLS.swift:158:7:158:7 | value | semmle.label | value | | InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | semmle.label | [post] def [TLSVersion] | @@ -121,12 +116,7 @@ nodes | file://:0:0:0:0 | [post] self [tlsMaximumSupportedProtocol] | semmle.label | [post] self [tlsMaximumSupportedProtocol] | | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocolVersion] | semmle.label | [post] self [tlsMinimumSupportedProtocolVersion] | | file://:0:0:0:0 | [post] self [tlsMinimumSupportedProtocol] | semmle.label | [post] self [tlsMinimumSupportedProtocol] | -| file://:0:0:0:0 | self [Reverse] [TLSVersion] | semmle.label | self [Reverse] [TLSVersion] | -| file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMaximumSupportedProtocolVersion] | -| file://:0:0:0:0 | self [Reverse] [tlsMaximumSupportedProtocol] | semmle.label | self [Reverse] [tlsMaximumSupportedProtocol] | | file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocolVersion] | -| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocolVersion] | -| file://:0:0:0:0 | self [Reverse] [tlsMinimumSupportedProtocol] | semmle.label | self [Reverse] [tlsMinimumSupportedProtocol] | | file://:0:0:0:0 | self [TLSVersion] | semmle.label | self [TLSVersion] | | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | @@ -134,18 +124,18 @@ nodes | file://:0:0:0:0 | value | semmle.label | value | | file://:0:0:0:0 | value | semmle.label | value | subpaths -| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:40:3:40:3 | [post] config | -| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:45:3:45:3 | [post] config | -| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:20:7:20:7 | value | InsecureTLS.swift:20:7:20:7 | self [Return] [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:57:3:57:3 | [post] config | -| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:22:7:22:7 | value | InsecureTLS.swift:22:7:22:7 | self [Return] [tlsMinimumSupportedProtocol] | InsecureTLS.swift:64:3:64:3 | [post] config | -| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:23:7:23:7 | value | InsecureTLS.swift:23:7:23:7 | self [Return] [tlsMaximumSupportedProtocol] | InsecureTLS.swift:76:3:76:3 | [post] config | -| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:111:3:111:3 | [post] config | -| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:122:3:122:3 | [post] config | -| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:158:7:158:7 | value | InsecureTLS.swift:158:7:158:7 | self [Return] [TLSVersion] | InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | +| InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:40:3:40:3 | [post] config | +| InsecureTLS.swift:45:47:45:70 | .TLSv11 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:45:3:45:3 | [post] config | +| InsecureTLS.swift:57:47:57:70 | .TLSv10 | InsecureTLS.swift:20:7:20:7 | value | InsecureTLS.swift:20:7:20:7 | self [Reverse] [tlsMaximumSupportedProtocolVersion] | InsecureTLS.swift:57:3:57:3 | [post] config | +| InsecureTLS.swift:64:40:64:52 | .tlsProtocol10 | InsecureTLS.swift:22:7:22:7 | value | InsecureTLS.swift:22:7:22:7 | self [Reverse] [tlsMinimumSupportedProtocol] | InsecureTLS.swift:64:3:64:3 | [post] config | +| InsecureTLS.swift:76:40:76:52 | .tlsProtocol10 | InsecureTLS.swift:23:7:23:7 | value | InsecureTLS.swift:23:7:23:7 | self [Reverse] [tlsMaximumSupportedProtocol] | InsecureTLS.swift:76:3:76:3 | [post] config | +| InsecureTLS.swift:111:47:111:64 | call to getBadTLSVersion() | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:111:3:111:3 | [post] config | +| InsecureTLS.swift:122:47:122:47 | version | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:122:3:122:3 | [post] config | +| InsecureTLS.swift:163:20:163:43 | .TLSv10 | InsecureTLS.swift:158:7:158:7 | value | InsecureTLS.swift:158:7:158:7 | self [Reverse] [TLSVersion] | InsecureTLS.swift:163:3:163:3 | [post] def [TLSVersion] | | InsecureTLS.swift:165:47:165:47 | def [TLSVersion] | InsecureTLS.swift:158:7:158:7 | self [TLSVersion] | file://:0:0:0:0 | .TLSVersion | InsecureTLS.swift:165:47:165:51 | .TLSVersion | -| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:165:3:165:3 | [post] config | -| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | -| InsecureTLS.swift:202:24:202:31 | .tlsMinimumSupportedProtocolVersion [Reverse] | file://:0:0:0:0 | .tlsMinimumSupportedProtocolVersion [Reverse] | InsecureTLS.swift:19:7:19:7 | self [Return] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:202:24:202:24 | [post] config | +| InsecureTLS.swift:165:47:165:51 | .TLSVersion | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:165:3:165:3 | [post] config | +| InsecureTLS.swift:181:53:181:76 | .TLSv10 | InsecureTLS.swift:19:7:19:7 | value | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:181:3:181:9 | [post] getter for .config | +| InsecureTLS.swift:202:24:202:31 | .tlsMinimumSupportedProtocolVersion [Reverse] | file://:0:0:0:0 | .tlsMinimumSupportedProtocolVersion [Reverse] | InsecureTLS.swift:19:7:19:7 | self [Reverse] [tlsMinimumSupportedProtocolVersion] | InsecureTLS.swift:202:24:202:24 | [post] config | | InsecureTLS.swift:202:74:202:97 | .TLSv10 | InsecureTLS.swift:196:56:196:63 | value | InsecureTLS.swift:196:1:198:1 | version[return] | InsecureTLS.swift:202:24:202:31 | [post] getter for .tlsMinimumSupportedProtocolVersion | #select | InsecureTLS.swift:40:3:40:3 | [post] config | InsecureTLS.swift:40:47:40:70 | .TLSv10 | InsecureTLS.swift:40:3:40:3 | [post] config | This TLS configuration is insecure. |